使用 matplotlib 的只有一个切片的饼图

Pie chart with only a single slice using matplotlib

我正在尝试在饼图中绘制 fracs 的值。在饼图中,我必须显示值 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

你说你"have to display the value 0"。您的代码正是这样做的。您的列表 fracs 包含列表中的值对饼图周长的相对贡献。列表中有一个值,值 0。该值对圆周贡献 0.0,即没有。这就是您的代码生成的结果:一个角度为 0° 的切片,显示为单行。

在你的第一条评论中,你说你是 "trying to display a whole pie chart with number 0 written on it"。这与显示值 0 有很大不同。可以通过将列表 fracs = [1] 传递到 plt.pie() 来创建仅由填充整个圆周的单个切片组成的完整饼图。这显示值 1,而不是 0。

但如果你真的,真的 "need to display a pie chart with no slices inside it and number 0 written inside it",根据你最新的评论,这段代码将为你做到这一点:

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。