如何解决显示带有比例和填充不起作用的条形图
我正在使用 plotnine 绘制一些图。当我尝试显示比例而不是计数的条形图时,fill
参数变得无用。我注意到删除 group=1
参数有助于使 fill
参数再次“激活”。但是,如果没有 group=1
参数,则无法正确计算比例。
这是我的功能:
def plot_churn(df_):
color_dict = {
'Stayed': 'green','churned': 'red'
}
myplot = ggplot(data=df_,mapping=aes(x='Flag_churned',fill='Flag_churned'))
myplot += geom_bar(mapping=aes(y="stat(prop)",group=1))
myplot += theme(subplots_adjust={'right': 0.71})
myplot += facet_wrap('Flag_Treat')
myplot += scale_fill_manual(color_dict)
myplot += scale_y_continuous(labels=percent_format())
print(myplot)
例如,当使用以下 Pandas DataFrame 时:
data = {'churn': [0,1,1],'Flag_Treat': ['treated','treated','not treated','not treated'],'Flag_churned': ['Stayed','Stayed','churned','churned']}
df = pd.DataFrame(data=data)
我做错了什么?
解决方法
问题在于 stat(prop)
计算每个方面的道具。虽然设置 group
美学会给你正确的道具,但它会覆盖 fill
的分组。拥有 R 背景,我知道如何在 R 中即时进行此计算。但是,在 R 中建议的更简单的方法和大部分时间是在将数据传递给 ggplot
之前聚合数据并利用 {{ 1}} 而不是 geom_col
:
geom_bar
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。