Python 来自CSV文件的Matplotlib Pyplot饼图

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

我有一个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=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更新了问题