web-dev-qa-db-ja.com

データ値をmatplotlibの色情報に変換する方法は?

Matplotlib.patches.Polygonクラスを使用して、マップ上にポリゴンを描画しています。実際、ポリゴンのコーナーの座標と各「ポリゴン」の浮動小数点データ値に関する情報が提供されます。ここで、これらのデータ値(0から3e15の範囲)を色情報に変換して、見栄えよく視覚化したいと思います。 Pythonでそれを行うためのベストプラクティスは何ですか?

私のコードのスニペット:

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

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)

ここにすべての 事前定義されたカラーマップ。 独自のカラーマップの作成に興味がある場合は、 ここ が良い例です。また、 here は、慎重に色を選択することに関するIBMの論文です。これは、データを視覚化するために色を使用している場合に考慮すべきことです。

23
Mr. Squig

値を0から+無限大に変換し、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)

カラーマップの完全なリストはここにあります: http://matplotlib.org/users/colormaps.html

あなたが探しているのはColorMapだと思います。 matplotlibが提供するものの使用については、次の投稿を参照してください。

カラーマップを使用してmatplotlibで線の色を設定する

自分で作りたい場合は、以下のページに良い例があります。

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

1
juniper-