如何使用python从csv文件创建饼图

时间:2019-05-24 14:23:16

标签: python pandas matplotlib plot pie-chart

我有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()

此代码输出的饼图变形,有帮助吗?

我得到的图表:

enter image description here

3 个答案:

答案 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()

enter image description here

答案 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()