2012-10-12 6 views
11

मैं क्लास matplotlib.patches.Polygon का उपयोग मानचित्र पर बहुभुज आकर्षित करने के लिए कर रहा हूं। वास्तव में, बहुभुज के कोनों के निर्देशांक और प्रत्येक "बहुभुज" के लिए एक फ़्लोटिंग पॉइंट डेटा मान के बारे में जानकारी दी जाती है। अब मैं इन आंकड़ों के मूल्यों को परिवर्तित करना चाहता हूं (0 से 3e15 तक) रंगीन जानकारी में इसे अच्छी तरह से देखने के लिए। पायथन में ऐसा करने के लिए सबसे अच्छा अभ्यास क्या है?matplotlib के लिए डेटा मानों को रंगीन जानकारी में कैसे परिवर्तित करें?

मेरे कोड का एक टुकड़ा:

poly = Polygon(xy, facecolor=data, edgecolor='none') 
plt.gca().add_patch(poly) 
+0

मदद से (matplotlib.pyplot .plot): 'आप कई अजीब और में रंगों को पूर्ण नाम (' हरा '), हेक्स स्ट्रिंग्स (' # 008000 '), आरजीबी या आरजीबीए टुपल्स ((0,1,0,1) सहित अद्भुत तरीके शामिल कर सकते हैं।) या ग्रेस्केल तीव्रता एक स्ट्रिंग के रूप में ('0.8') ' –

उत्तर

20

आरजीबी रंग प्रणाली में डेटा के दो टुकड़े प्रत्येक रंग, लाल, हरे और नीले के लिए उपयोग किया जाता है। इसका मतलब है कि प्रत्येक रंग 0 से 255 के पैमाने पर चलता है। काला 00,00,00 होगा, जबकि सफेद 255,255,255 होगा। आपके लिए उपयोग करने के लिए Matplotlib में बहुत से पूर्व परिभाषित कॉलमैप्स हैं। वे सभी 255 सामान्यीकृत हैं, इसलिए वे 0 1. करने से चला तो आप केवल अपने डेटा को सामान्य की जरूरत है, तो आप एक रंग नक्शे से मैन्युअल रूप से चयन रंग के रूप में इस कर सकते हैं:

>>> import matplotlib.pyplot as plt 

>>> Blues = plt.get_cmap('Blues') 
>>> print Blues(0) 
(0.9686274528503418, 0.9843137264251709, 1.0, 1.0) 
>>> print Blues(0.5) 
(0.41708574119736169, 0.68063054575639614, 0.83823145908467911, 1.0) 
>>> print Blues(1.0) 
(0.96555171293370867, 0.9823452528785257, 0.9990157632266774, 1.0) 

यहाँ predefined colormaps. हैं के सभी कर रहे हैं आप अपने खुद के रंग के नक्शे बनाने में रुचि रखते हैं, here एक अच्छा उदाहरण है। here रंगों को ध्यान से चुनने पर आईबीएम से एक पेपर है, यदि आप आंकड़ों को देखने के लिए रंग का उपयोग कर रहे हैं तो आपको कुछ विचार करना चाहिए।

+0

Thx! एक जादू की तरह काम करता है! – HyperCube

+0

मैं उलझन में हूं, 256 2 ** 8 है, शायद आप प्रत्येक रंग के लिए 8 बिट्स = 1 बाइट डेटा का मतलब है? – Ziofil

1

मुझे लगता है कि आप देख रहे हैं एक रंग मैप है। Matplotlib द्वारा प्रदान किए गए उपयोगों के बारे में जानकारी के लिए निम्न पोस्ट देखें।

Using Colormaps to set color of line in matplotlib

आप अपने खुद के बनाना चाहते हैं, पेज के नीचे एक अच्छा उदाहरण प्रदान करता है।

http://code.activestate.com/recipes/52273-colormap-returns-an-rgb-tuple-on-a-0-to-255-scale-/

+0

यह बहुत उपयोगी था, धन्यवाद! – HyperCube

3

एक मूल्य बदलने के लिए से है कि कि 0.0 से 1,0

import matplotlib.pyplot as plt 

price_change = price_change ** 2/(1 + price_change ** 2) 
Blues = plt.get_cmap('Blues') 
print Blues(price_change) 

colormaps की एक पूर्ण सूची के लिए चला जाता एक मूल्य के लिए + अनंत को 0 से चला जाता है यहाँ है: http://matplotlib.org/users/colormaps.html

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