如何根据类别设置不同地块的图例?

时间:2020-02-03 16:39:25

标签: python dataframe matplotlib legend

我有一个大型数据集,包含7000多行300列。我正在处理诊断和住院时间。我想为每个诊断绘制一个图(因此,xlabel中的条形图与患者数相同,而ylabel中的条形图是每位进行该诊断的患者的天数)。

但是,我想对每个图都有不同的标题,以便知道该图所指的每个诊断。我的意思是,例如,对于心脏病发作,我希望标题是“心脏病发作”,但是对于其他诊断,我想要另一个标题。我希望它以自动方式进行。那可能吗?我在下面显示我的代码,但我知道它是不正确的。

此外,我希望xlabelylabel出现在每个情节中,这是不知道的事。它只是出现在最后一个。

有人可以帮助我吗?

df_n = df[['Diagnose','Length of Stay']]
df_n.groupby('Diagnose').plot(kind = 'bar')
plt.xlabel('Patients')
plt.ylabel('Length of Stay (Days)')
plt.title('Length of Stay for Diagnose') # I want it to be the name of the diagnose
plt.show()

1 个答案:

答案 0 :(得分:0)

我相信您的标签不会显示,因为您没有为要绘制的每个图明确设置标签。 当我做groupby时,我喜欢做字典。每个诊断将是一个键,而值将是数据框

a = dict(tuple(df_n.groupby('Diagnose')))
for key, value in a.items():
     value.plot(kind = 'bar')
     plt.title('{}'.format(key))

在for循环下,您可以一次设置所有格式,并且将对每个图形执行此操作。您可以输入plt.savefig('{0}.eps'.format(k)语句,这样会保存您的所有绘图

相关问题