我正在尝试使matplotlib饼图上的线条更轻松。因为我有这么多切片,所以线条太粗,如下所示:
我读过this example,建议像这样使用rcparam:
matplotlib.rcParams['text.color'] = 'r'
matplotlib.rcParams['lines.linewidth'] = 2
但是虽然我可以更改文本颜色,但它不会更改饼图切片之间的线条宽度。我相信这是因为切片不是由线对象控制,而是由楔形对象控制。那么有没有办法设置楔形边框样式和颜色?
非常感谢, 亚历
答案 0 :(得分:13)
试试这个:
ax = plt.subplot(111)
wedges, texts = ax.pie(np.abs(np.random.randn(5)))
for w in wedges:
w.set_linewidth(2)
w.set_edgecolor('cyan')
此外,如果您只有一个axes
对象并且无法直接访问饼的楔形,则可以从ax.patches
检索楔形:
wedges = [patch for patch in ax.patches if isinstance(patch, matplotlib.patches.Wedge)]
答案 1 :(得分:5)
我迟到了这个派对,但刚发现,对于饼图,而不是使用:
plt.rcParams['lines.linewidth'] = 2
你可以使用:
plt.rcParams['patch.linewidth'] = 0
另外,要更改饼图线颜色,请使用:
plt.rcParams['patch.edgecolor'] = 'white'
而不是:
plt.rcParams['line.color'] = 'white'