2012-11-29 20 views
14

मैं एक 2 डी numpy सरणी है कि इस तरह बनाया है का उपयोग करते हुए:प्लॉट 2-आयामी NumPy सरणी विशिष्ट स्तंभ

data = np.empty((number_of_elements, 7)) 

7 (या जो कुछ भी) तैरता के साथ प्रत्येक पंक्ति एक ऑब्जेक्ट के गुणों का प्रतिनिधित्व करता है। उदाहरण के लिए पहले दो x और y ऑब्जेक्ट की स्थिति हैं, अन्य विभिन्न गुण हैं जिनका उपयोग साजिश में रंग जानकारी लागू करने के लिए भी किया जा सकता है।

मैं एक रंग जानकारी (कि वेक्टर की लंबाई एक रंग का निर्धारण करना चाहिए के रूप में p[2:4] कहना है ताकि यदि p = data[i], एक वस्तु अपने 2 डी स्थिति के रूप में और साथ p[:2] के साथ एक बिंदु के रूप में दर्शाया गया है, data से एक बिखराव साजिश क्या करना चाहते हैं बिंदु के लिए)। अन्य स्तंभों को साजिश से कोई फर्क नहीं पड़ता।

मुझे इसके बारे में कैसे जाना चाहिए?

उत्तर

21

एक बुनियादी matplotlib आंकड़ा की स्थापना आसान है:

import matplotlib.pyplot as plt 
import numpy as np 
fig = plt.figure() 
ax = fig.add_subplot(1, 1, 1) 

x, y और color के लिए कॉलम बंद चुनने कुछ इस तरह दिख सकता है:

N = 100 
data = np.random.random((N, 7)) 
x = data[:,0] 
y = data[:,1] 
points = data[:,2:4] 
# color is the length of each vector in `points` 
color = np.sqrt((points**2).sum(axis = 1))/np.sqrt(2.0) 
rgb = plt.get_cmap('jet')(color) 

अंतिम पंक्ति को पुन: प्राप्त jet रंग मैप और सरणी color में 3-ट्यूपल आरजीबी मान में प्रत्येक फ़्लोट मान (0 और 1 के बीच) को मानचित्र करता है। here से चुनने के लिए colormaps की एक सूची है। कस्टम colormaps को परिभाषित करने का एक तरीका भी है।

एक बिखराव भूखंड बनाना अब सीधी-सपाट है:

ax.scatter(x, y, color = rgb) 
plt.show() 
# plt.savefig('/tmp/out.png') # to save the figure to a file 

enter image description here

+1

सामान्य के रूप में पूरा करें। मैं सिर्फ जेट कॉलोमैप का उपयोग नहीं करने का सुझाव दूंगा, लेकिन गर्मियों या सर्दी की तरह एक और निरंतर, जो संक्रमण की एक और स्पष्ट भावना देता है, जिसे जेट रंग स्पेक्ट्रम द्वारा विकृत किया जा सकता है। – EnricoGiampieri

6

यकीन है कि वास्तव में क्या आप साजिश में तलाश कर रहे हैं, लेकिन आप इस तरह 2 डी सरणियों काट कर सकते हैं नहीं:

>>> a 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 
>>> a[:,1] 
array([1, 4, 7]) 
>>> a[:,1:3] 
array([[1, 2], 
     [4, 5], 
     [7, 8]]) 

फिर कुछ matplot साजिश का ख्याल रखना। यदि आप Matplotlib Gallery पर जो खोज रहे हैं उसे ढूंढते हैं तो मैं आपकी और अधिक सहायता कर सकता हूं।

+1

वाह, यह इतना आसान यह शर्मनाक है .. मैं सामान टुकड़ा करने की क्रिया में देखने की जरूरत है था। – tamacun

संबंधित मुद्दे