15

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

私のコードの抜粋:

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

2 に答える 2

26

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)

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

于 2012-10-12T11:47:13.930 に答える
4

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

于 2016-01-05T00:57:42.640 に答える