我有一个这样的数据框:
国家名称不同。
我想计算中等高度列的平均值,并按 Country 列进行分组;那么我想在xticks上绘制一个带有所有国家名称的直方图。
为此,我使用以下方法计算了平均值:height = df.groupby(["Country"]).mean()["Medium Height"]
我试图用以下方式绘制直方图:
plt.hist(height, density=1, facecolor="black", alpha=0.6)
plt.xticks(countries, df["Paese"])
但是情节看起来像这样:
这是我使用的代码:
height = df.groupby(["Country"]).mean()["AMedium Height"]
countries = np.arange(152) # The number of countries
plt.hist(height, density=1, facecolor="black", alpha=0.6)
plt.xticks(countries, df["Country"])
plt.show()
-编辑-
这是我使用的数据框的一部分:
Country Year Height
0 Afghanistan 1870 168.4
1 Afghanistan 1880 165.7
2 Afghanistan 1930 166.8
3 Albania 1880 170.1
4 Albania 1890 169.8
答案 0 :(得分:0)
您似乎想绘制平均身高与国家/地区的条形图。
你可以做到
means = df.groupby(["Country"]).mean()['Height']
print(means)
结果
Country
Afghanistan 166.966667
Albania 169.950000
Name: Height, dtype: float64
然后像这样绘制它
ax = means.plot(kind = 'bar')
ax.set_ylabel('Mean Height')
结果
如果您希望所有条形使用相同的颜色
ax = means.plot(kind = 'bar', colors = 'grey')
ax.set_ylabel('Mean Height')
这将导致