使用 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。
我正在尝试在饼图中绘制 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。