2010-06-13 9 views
6

में matplotlib में एक रंगीन 2 डी सरणी प्रदर्शित करना मैं Matplotlib में रंगीन मैट्रिक्स के रूप में numpy से 2-डी मैट्रिक्स प्लॉट करना चाहता हूं। मैं निम्नलिखित 9-दर-9 सरणी है:पाइथन

my_array = diag(ones(9)) 

# plot the array 
pcolor(my_array) 

मैं एक खास रंग होने के लिए विकर्ण के पहले तीन तत्वों निर्धारित करना चाहते हैं, अगले तीन एक अलग रंग है, और पिछले तीन होने के लिए एक अलग रंग मैं एक हेक्स कोड स्ट्रिंग द्वारा रंग निर्दिष्ट करना चाहता हूं, जैसे "# FF8C00"। मैं यह कैसे कर सकता हूँ?

इसके अलावा, मैं रंग के लिए 0-मूल्यवान तत्वों का रंग कैसे सेट कर सकता हूं?

उत्तर

2

तत्वों अलग अलग रंग होना करने के लिए, उन्हें अलग मान निर्दिष्ट:

my_array = diag([1,1,1,2,2,2,3,3,3]) 

रंग निर्दिष्ट करने के लिए, कोशिश:

from matplotlib.colors import ListedColormap, NoNorm 
cmap = ListedColormap(['#E0E0E0', '#FF8C00', '#8c00FF', '#00FF8C']) 
pcolor(my_array,cmap=cmap,norm=NoNorm()) 

norm=NoNorm() तर्क मैट्रिक्स से कोई भी मान स्केलिंग से बचा जाता है, इसलिए उस सूची में पहला रंग मिलता है, 1 दूसरा, आदि