如何在条形图上间隔x刻度并缩放y轴

时间:2019-04-25 19:26:23

标签: python matplotlib

我有以下代码,可以创建各个国家的小型数据框和相应的得分值:

import pandas
import numpy 
import matplotlib
import matplotlib.pyplot as plt
df = pandas.DataFrame(data = ["Norway", "Denmark", "Iceland", 
"Switzerland", "Finland", "Netherlands", "Canada", "New Zealand", 
"Sweden", "Australia"], columns = ["Countries"])
df["Score"] = [7.6, 7.55, 7.50, 7.45, 7.40, 7.35, 7.30, 7.25, 7.20, 
7.15]

然后我使用matplotlib创建条形图:

bars = df['Countries']
height = df['Score']
plt.bar(bars, height, align = "center", alpha = 0.5)
plt.ylabel('Happiness Score')
plt.title('Happiness by Country')
plt.show

我不确定如何做两件事: 1)隔开x轴的国家/地区名称,以使它们彼此不交叉 2)以不同的方式缩放y轴,以使所有分数看起来不太接近

1 个答案:

答案 0 :(得分:3)

您只需将标签旋转一定角度即可避免重叠。另一种方法是为条形图使用宽间距的x位置。但是,由于国名长且长度不等,因此我不建议这样做。

编辑:为了完整性起见,我添加了Rocky Li关于y轴缩放的建议。

plt.xticks(rotation=45)
plt.ylim(7, 8)

enter image description here