2012-10-12 13 views
11

マップ上にポリゴンを描画するには、matplotlib.patches.Polygonクラスを使用しています。実際には、ポリゴンの角の座標に関する情報と、各「ポリゴン」に対する浮動小数点データ値が与えられる。 ここでは、これらのデータ値(0〜3e15の範囲)を色情報に変換して、それをうまく可視化したいと考えています。 Pythonでこれを行うベストプラクティスは何ですか?データ値をmatplotlibの色情報に変換する方法は?

私のコードの抜粋:

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

ヘルプから(matplotlib.pyplot .plot): 'フルネーム( 'green')、16進数 文字列( '#008000')、RGBまたはRGBAタプル((0,1,0,1)など)を含む、素晴らしい方法で多くの奇妙な色と の色を指定できます。 )または 文字列( '0.8')のグレースケール強度 ' –

答えて

20

RGB表色系のデータの2ビットは、赤、緑、青の各色に使用されています。つまり、各色は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は、色を慎重に選択する際のIBMの紙です。データを視覚化するために色を使用している場合は、考慮する必要があります。それから値を変換するには

+0

Thx!魅力的な作品! – HyperCube

+0

私は混乱しています、256は2 ** 8、おそらく8ビット=各色のデータの1バイトを意味するのですか? – Ziofil

1

私は何を探していることはColorMapのだと思います。 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

import matplotlib.pyplot as plt 

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

1.0 0〜+無限大に0.0から行く価値に行くカラーマップの完全なリストはここにある:http://matplotlib.org/users/colormaps.html

関連する問題