Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么没有';使用matplotlib无法在饼图中获得正确的百分比比率?_Python_Matplotlib - Fatal编程技术网

Python 为什么没有';使用matplotlib无法在饼图中获得正确的百分比比率?

Python 为什么没有';使用matplotlib无法在饼图中获得正确的百分比比率?,python,matplotlib,Python,Matplotlib,我对饼图中的百分比感到失望。我不知道为什么,但饼图上的百分比是错的。我认为绘图函数误解了绘图数据,然后在饼图中给了我错误的百分比值。出了什么问题?如何解决这个问题?有什么想法吗 我的尝试和最小数据 这是 我的尝试: import pandas as pd df=pd.read_csv('piechart.csv', encoding='utf-8') labels = tuple(df.index) total_sum = df['qty1_sum'].sum() sizes=[58, 50

我对饼图中的百分比感到失望。我不知道为什么,但饼图上的百分比是错的。我认为绘图函数误解了绘图数据,然后在饼图中给了我错误的百分比值。出了什么问题?如何解决这个问题?有什么想法吗

我的尝试和最小数据

这是

我的尝试

 import pandas as pd

df=pd.read_csv('piechart.csv', encoding='utf-8')
labels = tuple(df.index)
total_sum = df['qty1_sum'].sum()
sizes=[58, 50, 66, 53, 48, 48, 34, 49, 59, 48]

fig1, ax1 =plt.subplots(figsize=(12,8))
pie = ax1.pie(sizes, wedgeprops=dict(width=0.8),  autopct= '%1.1f%%',shadow=True, startangle=90, textprops={'fontsize': 12})
tot_sum=str(total_sum) + '\n Metric Tons'
ax1.text(0., 0., tot_sum, horizontalalignment='center', verticalalignment='center')
ax1.axis('equal')
ax1.set(title="top 10 country by export")
ax1.set_axis_off()
ax1.legend(pie[0],top10_cty, loc="upper right", fontsize=20, bbox_to_anchor=(1.25, 1.25))
plt.show()
当我运行代码时,每个国家的百分比都是错误的,例如,日本应该有29%,但在我尝试的代码中,它给了我11%的值。为什么?如何解决这个问题?这个问题的根源在哪里?有什么快速的解决办法吗?谢谢

为什么我坚持认为百分比错误


我手动计算了每个国家的百分比,饼图中的百分比值是错误的。我不知道为什么。有没有办法找到问题的根源?谢谢

日本应该有29.97%,四舍五入到小数点后一位为30.0%

主要问题是代码使用固定列表
size=[58,50,…]
,而不是使用数据帧中的值

填写用于饼图和标签的正确列:

导入matplotlib.pyplot作为plt
作为pd进口熊猫
df=pd.read\u csv('piechart.csv',encoding='utf-8')
总计=df['qty1\u sum'].sum()
图1,ax1=plt.子批次(图大小=(12,8))
pie=ax1.pie(df['qty1_sum'],wedgeprops=dict(宽度=0.8),autoct='%1.1f%%',shadow=True,startangle=90,
textprops={'fontsize':12})
总量=str(四舍五入(总量))+“\n公吨”
ax1.文本(0,0,tot_sum,水平对齐='center',垂直对齐='center')
ax1.轴(“相等”)
ax1.集合(title=“出口前十名国家”)
ax1.将轴设置为off()
ax1.图例(饼图[0],df['cty_ptn',loc=“右上角”,fontsize=20,bbox_to_锚定=(1.25,1.25))
plt.紧_布局()
plt.show()

日本应为29.97%,四舍五入至小数点后一位,即30.0%

主要问题是代码使用固定列表
size=[58,50,…]
,而不是使用数据帧中的值

填写用于饼图和标签的正确列:

导入matplotlib.pyplot作为plt
作为pd进口熊猫
df=pd.read\u csv('piechart.csv',encoding='utf-8')
总计=df['qty1\u sum'].sum()
图1,ax1=plt.子批次(图大小=(12,8))
pie=ax1.pie(df['qty1_sum'],wedgeprops=dict(宽度=0.8),autoct='%1.1f%%',shadow=True,startangle=90,
textprops={'fontsize':12})
总量=str(四舍五入(总量))+“\n公吨”
ax1.文本(0,0,tot_sum,水平对齐='center',垂直对齐='center')
ax1.轴(“相等”)
ax1.集合(title=“出口前十名国家”)
ax1.将轴设置为off()
ax1.图例(饼图[0],df['cty_ptn',loc=“右上角”,fontsize=20,bbox_to_锚定=(1.25,1.25))
plt.紧_布局()
plt.show()

“日本应该有29%”。很难验证/纠正这一点,因为您的代码中没有提及“日本”,并且您没有包含
piechart.csv
文件。您正在从计算机的本地文件系统读取文件
piechart.csv
。任何人都应该如何知道内容是什么并用它来评估你的程序?@HymnsForDisco oops我忘了链接。你们现在可以看到它和代码发生了什么。“日本应该有29%”。很难验证/纠正这一点,因为您的代码中没有提及“日本”,并且您没有包含
piechart.csv
文件。您正在从计算机的本地文件系统读取文件
piechart.csv
。任何人都应该如何知道内容是什么并用它来评估你的程序?@HymnsForDisco oops我忘了链接。您现在可以看到它以及代码的运行情况。