我试图在饼图中绘制压裂的值。饼图内部,我必须显示值0.我刚刚得到0,但输出中看不到饼图。不知道我哪里错了。任何帮助将不胜感激。
import matplotlib.pyplot as plt
fracs = [0]
plt.pie(fracs, colors = “b”, autopct=make_autopct(fracs),textprops={'fontsize' : '30', 'weight': 'bold'})
plt.title('Event Logs',fontsize = 30)
def make_autopct(values):
def my_autopct(pct):
total = sum(values)
val = int(round(pct*total/100.0))
return '{v:d}'.format(v=val)
return my_autopct
答案 0 :(得分:0)
你说你“必须显示值0”。你的代码正是如此。您的列表fracs
包含列表中值与饼图圆周的相对贡献。列表中有一个值,值为0.该值对周长贡献0.0,即没有。这就是您的代码产生的:角度为0°的切片,显示为单行。
在你的第一条评论中,你说你“试图显示一个写有数字0的整个饼图”。这与显示值0非常不同。可以通过将列表fracs = [1]
传递给plt.pie()
来创建仅包含填充整个圆周的单个切片的完整饼图。这显示值1,而不是0。
但是,如果你真的,“真的”需要显示一个没有切片的饼图,并在其中写入0号“,根据你的最新评论,这段代码将为你做到:
fracs = [1]
plt.pie(fracs,
autopct=lambda x: "0.0",
colors="b",
textprops={'fontsize' : '30', 'weight': 'bold'})
plt.title('Event Logs',fontsize = 30)
但是,让我再说一遍:这不是显示值0的饼图。这是一个饼图,显示值1,其上印有标签“0.0” - 即使它显示的值为1.0。