如何获得其他饼图颜色?我有大约20个类别的数据集,并且可能更大。创建饼图时,某些楔形具有相同的颜色,所以我想知道是否可以通过一种方法使饼形图中的楔形具有所有不同的颜色? 谢谢!
答案 0 :(得分:2)
20种颜色恰恰是您可以通过matplotlib中的分类/定性色图实现的限制。目前,matplotlib提供了1.kind_of? Integer #true
(1.5).kind_of? Float #true
,tab20
,tab20b
颜色图。
tab20c
对于更多颜色,当然也可以使用different colormaps,但是这些颜色通常会导致彼此非常相似的颜色。例如。对于具有30种不同颜色的饼图,我们可以使用import matplotlib.pyplot as plt
import numpy as np
data = np.random.randint(50,200, size=20)
fig = plt.figure()
with plt.style.context({"axes.prop_cycle" : plt.cycler("color", plt.cm.tab20.colors)}):
ax = fig.add_subplot(121, aspect="equal")
ax.pie(data)
with plt.style.context({"axes.prop_cycle" : plt.cycler("color", plt.cm.tab20c.colors)}):
ax2 = fig.add_subplot(122, aspect="equal")
ax2.pie(data)
plt.show()
或nipy_spectral
颜色图。
CMRmap
因此,可以添加另一个维度。从任何颜色图中选择一些颜色,并为每种颜色创建不同的亮度级别。这实际上显示在this answer中。在这里,为了得到例如30种不同的颜色,我们可以选择6种颜色,并为每种5种亮度级别选择。
import matplotlib.pyplot as plt
import numpy as np
data = np.random.randint(50,200, size=30)
fig = plt.figure()
cc = plt.cycler("color", plt.cm.nipy_spectral(np.linspace(0,.9,len(data))))
with plt.style.context({"axes.prop_cycle" : cc}):
ax = fig.add_subplot(121, aspect="equal")
ax.pie(data)
cc = plt.cycler("color", plt.cm.CMRmap(np.linspace(0,0.9,len(data))))
with plt.style.context({"axes.prop_cycle" : cc}):
ax2 = fig.add_subplot(122, aspect="equal")
ax2.pie(data)
plt.show()