用每个类别的行数注释Seaborn线图图例

时间:2020-04-06 03:10:46

标签: python seaborn

我想获取和显示每条线型图中每种类型的行数。例如

import seaborn as sns
fmri = sns.load_dataset("fmri")
ax = sns.lineplot(x="timepoint", y="signal", hue="event", data=fmri)

我想显示带有事件'stim'的行数和带有事件'cue'的行数作为图例的补充,例如而不是在图例中显示“ stim”,它可能显示“ stim(23)”,这意味着23行的事件为“ stim”

1 个答案:

答案 0 :(得分:1)

类似这样的方法可以解决问题:

fmri = sns.load_dataset("fmri")
x_col = 'timepoint'
y_col = 'signal'
hue_col = 'event'

ax = sns.lineplot(x=x_col, y=y_col, hue=hue_col, data=fmri)
handles,labels = ax.get_legend_handles_labels()
counts = fmri[hue_col].value_counts()
# labels[0] is used for the title by seaborn
new_labels = [labels[0]]+['{:s} ({:d})'.format(l, counts[l]) for l in labels[1:]]
ax.legend(handles, new_labels)

enter image description here