R语言如何调整ggplot(geom_col)图表的Y轴显示范围?
解决方法
你只需要在ggplot代码中添加scale_y_continuous()配置项固定Y轴范围即可,根据你的perc字段存储格式分两种常见场景处理:
场景1:perc为0-100范围的百分比数值
直接设置limits参数固定0到100的范围即可,修改后代码如下:
ggplot(loughran_nc) + aes(x = fct_reorder(sentiment, perc), y = perc)+ geom_col()+ ylab("Percentage") + xlab("Sentiment")+ ggtitle("Sentiment Analysis: Non-Complaints Loughran dictionary")+ # 新增行固定Y轴范围 scale_y_continuous(limits = c(0, 100)) + theme(plot.title = element_text(hjust = 0.5))
场景2:perc为0-1范围的小数占比
可以配合scales包的百分比格式转换,同时固定Y轴范围、显示带%的刻度,更贴合百分比展示需求:
首先确保你已经安装加载了scales包:install.packages("scales"); library(scales)
之后修改代码如下:
ggplot(loughran_nc) + aes(x = fct_reorder(sentiment, perc), y = perc)+ geom_col()+ ylab("Percentage") + xlab("Sentiment")+ ggtitle("Sentiment Analysis: Non-Complaints Loughran dictionary")+ # 新增行固定Y轴范围+百分比刻度 scale_y_continuous(limits = c(0, 1), labels = percent_format()) + theme(plot.title = element_text(hjust = 0.5))
- 两张图都添加相同的
scale_y_continuous配置即可保证Y轴范围完全一致,方便直接对比两组数据差异。 - 如果你的数据存在超过100%的异常值,又不想截断柱子,可以在
scale_y_continuous中添加参数oob = scales::oob_squish,会把超出范围的数值压缩到边界展示。
内容的提问来源于stack exchange,提问作者vicxirra
相关产品推荐
相关产品推荐

