Python 来自CSV文件的Matplotlib Pyplot饼图
我有一个CSV文件,其中有一列值为0或1,我正在尝试将值的数量绘制为饼图 我试过:Python 来自CSV文件的Matplotlib Pyplot饼图,python,csv,matplotlib,charts,Python,Csv,Matplotlib,Charts,我有一个CSV文件,其中有一列值为0或1,我正在尝试将值的数量绘制为饼图 我试过: fileName = sys.argv[1] col1 = sys.argv[2] file = pd.read_csv(fileName) data = np.array(file)[:,col1] labels = 'True', 'False' sizes = data colors = ['red', 'blue'] plt.pie(sizes, labels=labels, colors=colo
fileName = sys.argv[1]
col1 = sys.argv[2]
file = pd.read_csv(fileName)
data = np.array(file)[:,col1]
labels = 'True', 'False'
sizes = data
colors = ['red', 'blue']
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')
plt.show()
但这是错误的。如何显示CSV列中的两层饼图?这些值不符合顺序。我用一个条形图做了类似的事情,它自动地把一切都弄清楚了
回溯:
Traceback (most recent call last):
File "pie.py", line 18, in <module>
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
File "~\matplotlib\pyplot.py", line 3137, in pie
frame=frame, data=data)
File "~\matplotlib\__init__.py", line 1811, in inner
return func(ax, *args, **kwargs)
File "~\matplotlib\axes\_axes.py", line 2559, in pie
raise ValueError("'label' must be of length 'x'")
ValueError: 'label' must be of length 'x'
回溯(最近一次呼叫最后一次):
文件“pie.py”,第18行,在
plt.pie(大小、标签=标签、颜色=颜色、自动扫描=“%1.1f%%”、阴影=真、startangle=140)
饼图中第3137行的文件“~\matplotlib\pyplot.py”
帧=帧,数据=数据)
文件“~\matplotlib\\uuuuu init\uuuuu.py”,第1811行,在内部
返回函数(ax,*args,**kwargs)
文件“~\matplotlib\axes\\u axes.py”,第2559行,在饼图中
raise VALUERROR(“'label'的长度必须为'x'”)
ValueError:“标签”的长度必须为“x”
问题在于数据量(大小
)大于或小于2(标签的数量)。
验证数据和标签的数据量是否相同:
labels = 'True', 'False'
sizes = data
colors = ['red', 'blue']
assert len(sizes) == len(labels)
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
如果断言失败,您必须根据
大小中的数据量输入更多/更少的标签和颜色
什么是回溯?@zondo更新了问题