如何设置y轴的范围?

时间:2020-06-30 14:25:52

标签: python matplotlib

我很难弄清楚如何正确绘制此图,所以我在做什么:

    names = ['Graves', 'Fallecidos', 'Moderados', 'Asintomaticos', 'Leves']
    values = [str(df_2035_Gra), str(df_2035_fal), str(df_2035_Mod), str(df_2035_Asin), str(df_2035_leve)]
    #Values: 69, 85, 876, 3593, 27572
    
    plt.figure(figsize=(9, 3))
    plt.bar(names, values)
    plt.suptitle('Pacientes x estado')
    plt.ylabel('Num. pacientes')
    plt.show()

我得到的是:

enter image description here

所以我没有得到的是如何使Y的范围从0到更高的值(27572)

2 个答案:

答案 0 :(得分:0)

伊万:)

您可以使用plt.ylim(0, 27572)

您可以查看文档here

希望对您有帮助!

答案 1 :(得分:0)

顺序很重要。在这里

plt.ylim(0, 27572)
plt.figure(figsize=(9, 3))
plt.bar(names, values)
plt.suptitle('Pacientes x estado')
plt.ylabel('Num. pacientes')
plt.show()

您将plt.ylim(0, 27572)放在使用plt.figure创建地物之前。试试这个:

plt.figure(figsize=(8, 8))
plt.bar(names, values)
plt.suptitle('Pacientes x estado')
plt.ylabel('Num. pacientes')
plt.ylim(0, 27572)
plt.yticks(np.append(np.arange(0, 25001, step = 5000), 27572))
plt.show()

我添加了plt.yticks以扩大范围。

您也可以尝试以下方法:

figure, ax = plt.subplots(figsize=(8, 8))
bar_plot = ax.bar(names, values)
plt.suptitle('Pacientes x estado')
plt.ylabel('Num. pacientes')
plt.ylim(0, 27572)
plt.yticks(np.arange(0, 30001, step = 5000))

for idx, rect in enumerate(bar_plot):
    height = rect.get_height() + 0.3
    x_coord = rect.get_x() + rect.get_width()/2
    ax.text(x_coord, 1.02*height,
                values[idx],
                ha='center', va='bottom')


plt.show()

会是这样的:

image