我有this CSV data file,我正在尝试使用此数据制作饼图
我是python的初学者,不了解如何使用三列创建饼图,请帮忙!
有效的解决方案代码会更有帮助!
我的代码:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv ('chart_work.csv')
product_data = df["Product Name;"]
bug_data = df["Number Of Bugs"]
colors = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#8c564b"]
plt.pie(bug_data , labels=product_data , colors=colors,
autopct='%1.1f%%', shadow=True, startangle=140)
plt.show()
此代码输出的饼图变形,有帮助吗?
我得到的图表:
答案 0 :(得分:2)
饼图不会“知道”您是否希望将具有相同产品名称的所有项目分组并汇总到图表中。所以您必须先这样做:
df = df.groupby(["Product Name;"]).sum()
这会将产品名称列设置为df的索引,因此将您的product_data列选择更改为此:
product_data = df.index
答案 1 :(得分:2)
这很简单。
import pandas as pd
from matplotlib.pyplot import pie, axis, show
%matplotlib inline
df = pd.read_csv ('chart_work.csv')
sums = df.groupby(df["Product Name;"])["Number Of Bugs"].sum()
axis('equal');
pie(sums, labels=sums.index);
show()
答案 2 :(得分:0)
import matplotlib.pyplot as plt
sizes=[89,80,90,100,75]
lables=["swetha","yokesh","iswarya","ranjeeth","deepika"]
plt.pie(sizes,lables=lables,autopct="%.2f")
plt.axes().set_aspect("equal")
plt.show()