我很难弄清楚如何正确绘制此图,所以我在做什么:
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()
我得到的是:
所以我没有得到的是如何使Y的范围从0到更高的值(27572)
答案 0 :(得分:0)
答案 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()
会是这样的: