如何使用 python 从 csv 文件创建饼图
how to create a pie chart from csv file using python
我有 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()
这段代码输出的饼图失真了,有帮助吗?
我得到的图表:
饼图不会 'know' 您希望在图表中对具有相同产品名称的所有项目进行分组和汇总。所以你必须先这样做:
df = df.groupby(["Product Name;"]).sum()
这会将产品名称列设置为 df 的索引,因此请将您的 product_data 列选择更改为:
product_data = df.index
这个很简单。
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()
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()
我有 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()
这段代码输出的饼图失真了,有帮助吗?
我得到的图表:
饼图不会 'know' 您希望在图表中对具有相同产品名称的所有项目进行分组和汇总。所以你必须先这样做:
df = df.groupby(["Product Name;"]).sum()
这会将产品名称列设置为 df 的索引,因此请将您的 product_data 列选择更改为:
product_data = df.index
这个很简单。
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()
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()