python - 用每个类别的行数注释 seaborn 线图图例
问题描述
我想在 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'
解决方案
像这样的东西可以解决问题:
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)
推荐阅读
- javascript - 可以从 URL 中提取所有子域 + 域并与 RFC 3490 兼容的正则表达式
- c - 如果有的话,编码在什么时候开始在 C 中发挥作用?那么如何正确打印字符串呢?
- reactjs - NotFound 组件不在路由器中呈现
- firebase - 通过 REST 构建的 firebase 动态链接指定社交预览信息
- css - 将鼠标悬停在 ggplot 上以错误的顺序更新 CSS 和呈现工具提示
- reactjs - 无法重定向到搜索结果页面
- python - 在 setter 中增加类属性属性
- c# - 将文件中的 Soap 反序列化为 DTO
- c# - 如何在 C# 中仅保存 Outlook 中的 Excel 附件?
- c# - 如何“冒泡”nuget包,这样我就不必重复引用?