为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 geom_hlines 图例添加到 plotnine 的图中?

如何将 geom_hlines 图例添加到 plotnine 的图中?

至尊宝的传说 2022-06-28 16:41:04
我想在我的情节中添加一个图例,其中包含所有 hline 的统计描述。有什么办法吗?def test_plot():Q1=test['age'].quantile(0.25)Q3=test['age'].quantile(0.75)IQR=Q3-Q1fig = (    ggplot(test) +    aes(x=arr,y='age')+    geom_point()+    labs(        title='Test',        x='Index',        y='Age',        )+    geom_hline(aes(yintercept =test.age.mean(),),color = 'gray')+    geom_hline(aes(yintercept =test.age.median()),color = 'green')+    geom_hline(aes(yintercept =IQR),color = 'blue')+    geom_hline(aes(yintercept =test['age'].quantile(0.1)),color= 'red')+    geom_hline(aes(yintercept =test['age'].quantile(0.9)),color= 'yellow')+    geom_hline(aes(yintercept =test['age'].std()),color= 'purple')    )
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

在大多数情况下,当您发现自己与图例作斗争时,这表明您正在绘制的数据没有被有意义地排列。图例旨在帮助解释映射变量。在您的情况下,所有这些水平线都可以用一个变量表示,即“年龄统计”。


然后解决方案是将它们放入数据框中并使用一次调用,geom_hline以便绘图系统可以处理图例。


sdf = pd.DataFrame({

    'age_statistic': [

         'mean', 'median', IQR,

         '10th Percentile', '90th Percentile',

         'std'

    ],

    'value' : [

         test.age.mean(), test.age.median(), IQR,

         test['age'].quantile(0.1), test['age'].quantile(0.9),

         test['age'].std()

    ]

})


(ggplot(...)

 ...

 + geom_hline(sdf, aes(yintercept='value', colour='age_statistic'), show_legend=True)

)


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信