web-dev-qa-db-ja.com

円グラフmatplotlibでより多くの色を生成するにはどうすればよいですか?

チャートに表示するアイテムが40個以上あります。チャートに繰り返し表示されているのは10色だけです。どうすればより多くの色を生成できますか。

plt.pie(f,labels=labels,autopct='%1.1f%%', startangle=90,shadow=True)

色が無限に生成される「color = colors」を追加する必要がありますか?

11
user3001937

colorsからいくつかのカラーマップを使用できることに加えて、cm引数が必要です。

_>>> import matplotlib.pyplot as plt
>>> from matplotlib import cm
>>> import numpy as np
>>> a=np.random.random(40)
>>> cs=cm.Set1(np.arange(40)/40.)
>>> f=plt.figure()
>>> ax=f.add_subplot(111, aspect='equal')
>>> p=plt.pie(a, colors=cs)
>>> plt.show()
_

enter image description here

カラーマップを使用する以外に、.set_color_cycle()メソッドの使用も検討してください。この投稿を参照してください: matplotlibで異なる色をプロットする

28
CT Zhu

この回答がお役に立てば幸いです。このリンクを確認してください、 Matplotlibがサポートする色 。そこからランダムに40色を選び、円グラフで使用できます。

mcolors.TABLEAU_COLORS
mcolors.BASE_COLORS
mcolors.CSS4_COLORS

サンプル

import random
import matplotlib.colors as mcolors
colors = random.choices(list(mcolors.CSS4_COLORS.values()),k = number_of_colors)
2
Gags08