首页 > 解决方案 > 熊猫绘制国家总数和新科尔

问题描述

我在将多列绘制到直方图中时遇到问题

x1 = list(df[df['newcol'] == 0]['Country/Region'])
x2 = list(df[df['newcol'] == 1]['Country/Region'])

colors = ['r', 'c']
names = ['warm','cool']


plt.hist([x1, x2], bins = 1, normed=True,
         color = colors, label=names)
Country/Region Total  newcol
USA            450      0
Andorra        225      1
Bahamas        300      1 
Uk             150      0
Nigeria        189      0

我想让 x 轴上的国家和 y 轴上的 Total 然后根据 newcol 值对条形进行着色,例如 USA 将被着色为绿色,因为它与 0 相关联,而巴哈马则因为 1 而被着色为蓝色。我上面使用的代码给了我颜色,但由于国家/地区列中有这么多国家,所以图表被扭曲了,y 轴也没有给我正确的数字

标签: pythonpandas

解决方案


我认为您可能需要条形图而不是直方图

x1 = list(df[df['newcol'] == 0]['Country/Region'])
x2 = list(df[df['newcol'] == 1]['Country/Region'])
y1 = list(df[df['newcol'] == 0]['Total'])
y2 = list(df[df['newcol'] == 1]['Total'])

plt.bar(x1, y1, color='g')
plt.bar(x2, y2, color='b')

在此处输入图像描述

这是你需要的吗?


推荐阅读