matplotlib Python -如何在饼图中将autopct文本更改为白色和粗体?

kg7wmglp  于 2023-04-06  发布在  Python
关注(0)|答案(2)|浏览(190)

我想把自动扫描文本改成粗体和白色。
如果我在ax1.pie(..)中插入textprops='color':'white','weight':'bold','fontsize':12.5},标签就会消失。
有人能帮帮我吗

sizes1 = [3, 19]
explode1 = (0, 0.05)

fig, (ax1, ax2) = plt.subplots(1,2, figsize=(10,10))
labels = ('CRD = 1', 'CRD = 0')

#fig1, ax1 = plt.subplots()
ax1.pie(sizes1,explode= explode1, labels=labels, autopct='%1.1f%%',
        shadow=False,startangle=40, colors=('tab:red', 'tab:blue'))
ax1.set_title('Frauen', fontdict={'fontsize': 17}, y=0.8)

ax1.axis('equal')

sizes2 = [10, 24]
explode2 = (0, 0.05)

ax2.pie(sizes2, labels=labels, autopct='%1.1f%%',
        shadow=False,explode = explode2, startangle=345, colors=('tab:red','tab:blue'), )
ax2.set_title('Männer', fontdict={'fontsize': 17}, y=0.8)
ax2.axis('equal')

饼图

voase2hg

voase2hg1#

您正在绘制白上白:

在你的例子中,标签消失了,因为你在textprops参数中设置了颜色为白色。这是你如何做到的:

textprops={'color':'white', 'weight':'bold', 'fontsize':12.5}

并且它将白色标签绘制在白色背景上,因此无法看到它。您可以:

1.更改绘图背景颜色

fig.set_facecolor('lightgrey')

2.将textprops的颜色更改为其他颜色

textprops={'color':"blue", 'size': 10, 'weight':'bold'}

您可以使用ax.pie()函数中的textprops参数轻松管理字体大小、样式和颜色。

5gfr0r5j

5gfr0r5j2#

因为textprops同时适用于标签和自动百分比文本,所以需要在pie函数外部格式化自动百分比文本。

import matplotlib.pyplot as plt

sizes1 = [3, 19]
explode1 = (0, 0.05)
labels = ('CRD = 1', 'CRD = 0')

fig1, ax1 = plt.subplots()
_, _, autopcts = ax1.pie(sizes1,explode= explode1, labels=labels, autopct='%1.1f%%',
        shadow=False,startangle=40, colors=('tab:red', 'tab:blue'))

plt.setp(autopcts, **{'color':'white', 'weight':'bold', 'fontsize':12.5})
ax1.set_title('Frauen', fontdict={'fontsize': 17})

plt.show()

相关问题