如何用ggplot2绘制计数向左递增的翻转直方图
解决方案
要实现计数向左递增的翻转直方图,本质是把原图表的计数轴方向反转,这里提供两种简单的实现方式:
方法一:反转轴方向
直接在原代码基础上添加scale_x_reverse()(coord_flip后原Y轴的count变为新的X轴,反转新X轴即可实现计数向左递增):
library(dplyr) library(ggplot2) iris %>% group_by(Sepal.Length) %>% summarise(count = n()) -> histBar ggplot(data = histBar, mapping = aes(x = Sepal.Length, y = count)) + geom_bar(stat = "identity") + coord_flip() + scale_x_reverse() # 反转新X轴(原count轴),实现计数向左递增
方法二:映射负数值并调整轴标签
将count取负数映射到Y轴,柱子会向左延伸,再通过轴标签显示绝对值来保持可读性:
library(dplyr) library(ggplot2) iris %>% group_by(Sepal.Length) %>% summarise(count = n()) -> histBar ggplot(data = histBar, mapping = aes(x = Sepal.Length, y = -count)) + # 用负数值让柱子向左 geom_bar(stat = "identity") + coord_flip() + scale_y_continuous(labels = abs) # 把负轴标签转为正数,保持直观
两种方法都能达到你需要的镜像效果,可根据需求选择。
内容的提问来源于stack exchange,提问作者llewmills
相关产品推荐
相关产品推荐

