1

次のような円グラフがあるとします。青から赤へのグラデーションとして、ベクトル内のいくつかの値に基づいてスライスに色を付けたいと思います。青は -1、赤は +1 で、1 より大きい値も -1 より小さい値もありません。

fracs = [33,33,33]
starting_angle = 90
axis('equal')
patches, texts, autotexts = pie(fracs, labels = None, autopct='%1.1f%%', startangle=90)

print patches[2]

for item in autotexts:
    item.set_text("")

subplots_adjust(left=0.125, bottom=0.1, right=0.9, top=0.9, wspace=0.0, hspace=-0.4)


savefig('/home/superiois/Downloads/projectx3/GRAIL/pie2')
show()
4

1 に答える 1

1
fracs = [33,33,33]
starting_angle = 90
axis('equal')

color_vals = [-1, 0, 1]

my_norm = matplotlib.colors.Normalize(-1, 1) # maps your data to the range [0, 1]
my_cmap = matplotlib.cm.get_cmap('jet') # can pick your color map

patches, texts, autotexts = pie(fracs, labels = None, autopct='%1.1f%%', startangle=90,
                colors=my_cmap(my_norm(color_vals)))

print patches[2]

for item in autotexts:
    item.set_text("")


subplots_adjust(left=0.125, bottom=0.1, right=0.9, top=0.9, wspace=0.0, hspace=-0.4)

show()

colorskwargでパッチの色を設定できます。imshow既存のカラー マッピング コード (たとえば、で使用) を利用して、必要なグラデーションを生成できます。オブジェクトはNormalize、カラー マップが入力として期待する範囲にデータを正規化する処理を行い、カラー マップは float を色に変換します。

Normalize文書

pie文書

カラーマップ ドキュメント

于 2013-05-19T22:39:16.553 に答える