【发布时间】:2017-01-13 19:30:35
【问题描述】:
我正在尝试使用here 显示的示例在 Python 2.7 中生成 Matplotlib 饼图。这是我正在使用的代码:
import matplotlib.pyplot as plt
# The slices will be ordered and plotted counter-clockwise.
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
plt.pie(sizes, explode=explode, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90, radius=0.4,
center=(0.5,0.5),
frame=True, pctdistance=1.125)
# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal')
plt.show()
我正在尝试调整一些与标签和阴影相关的绘图格式,并希望获得一些帮助:
A.10% 分数的标签离粉红色楔形比标签 45% 离蓝色楔形更远。似乎对此存在疑问(1,2),但最新的 Matploltlib 有太多值需要解压。所以,当我从那里使用答案时:
patches, texts = plt.pie(...)
它会抛出这个错误:
ValueError: too many values to unpack
有没有办法确保所有百分比标签与其对应的楔形距离相等?
B.投影太厚(或强)。我尝试使用来自here 的path_effects 参数自定义它:
plt.pie(sizes, explode=explode, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90, radius=0.4,
center=(0.5,0.5),
frame=True, pctdistance=1.125,
path_effects=[path_effects.SimpleLineShadow(),
path_effects.Normal()])
但是,我收到一个错误:
TypeError: pie() got an unexpected keyword argument 'path_effects'
似乎有一个类似的问题here,但没有答案。有没有办法手动减少阴影的厚度?
C.我已经指定了一个带有我想用于饼图百分比标签的字体的字典:
labelfont = {'fontname':'Times New Roman', 'size':'14', 'color':'black', 'weight':'bold'}
例如,如果我想在散点图的 x 轴标签上使用它,我一直在使用它:
plt.xlabel('My_label',**labelfont)
我正在尝试为饼图百分比标签做类似的事情。如何指定该字体应用于百分比?
【问题讨论】:
-
如果你问几个问题,我建议你问几个问题。
标签: python matplotlib pie-chart labels dropshadow