python - 在 plotnine 中为 geom_bar 更改每个条的颜色
问题描述
我正在对单个变量(基于调查响应)进行计数,绘制一些条形图。
我目前正在使用此代码:
(ggplot(df, aes ('age_cat3')) +
geom_bar(color='#F6F6F6', fill='#0C475B') +
theme_minimal() +
xlab("") +
ggtitle('Age distribution in total sample'))
这会产生:
我希望每个酒吧都有不同的颜色。我知道我可以通过添加 [fill="age_cat3"] 来做到这一点,所以:
(ggplot(df, aes ('age_cat3', fill='age_cat3')) +
geom_bar() +
theme_minimal() +
xlab("") +
ggtitle('Age distribution in total sample'))
这会产生:
这个解决方案有两个问题:
现在有一个图例,我似乎无法用“scale_color_discrete(guide=False)”删除它
我似乎无法控制颜色或颜色主题。
任何有关删除图例的建议都会很棒,但理想情况下,无需使用“填充”即可更改条形颜色的某种方式会很棒。
(另外,抱歉图片太大了。我不太清楚如何附加小图片)
可重现的数据:
df = pd.DataFrame({'id': [1, 2, 3, 4, 5, 6, 7, 8 , 9, 10],
'age_cat3': [15-24, 15-24, 25-34, 35-44, 35-44, 35-44, 35-44, 45-59, 45-59, 60+]}
解决方案
您可以使用 geom/layer 参数关闭图例,show_legend=False
并且可以使用手动比例来设置fill
颜色。
(ggplot(...)
...
+ geom_bar(show_legend=False)
+ scale_fill_manual(values=['red', 'blue', 'green', 'cyan', 'violet', '#AABBCC'])
)
推荐阅读
- javascript - HTML5 输入下载(仅限客户端)似乎受大小限制
- scala - 如何让特征在scala中使用`this`构造函数?
- javascript - Nuxt JS / Firebase 的 Vuex 未知操作
- android - 未插入 SIM 卡时,Unity Firebase 无法正常工作
- python - 使用 For 循环(#Tkinter)循环图像
- java - 我怀疑我的代码没有退出 while 循环
- fortran - 在 Fortran 90 中将整数向下舍入以 0 或 5 结尾
- asynchronous - 我如何根据异步调用的结果使用 Navigator?
- excel - 如何在单独的模块中将工作表添加到 vba 代码?
- java - 如何在 spring-data-rest 中使用 Pageable 作为 get-query 参数?