如何在ggplot2中复刻Base R散点图并反转Y轴?
解决ggplot2中QS排名散点图的Y轴反转与样式问题
核心解决方案代码
library(ggplot2) # 绘制散点图并调整Y轴 ggplot(ranking_data, aes(x = academic_reputation, y = rank)) + geom_point() + # 反转Y轴,设置刻度与范围 scale_y_reverse( breaks = seq(1, 100, by = 10), # 按间隔10显示刻度,可按需修改by值 limits = c(100, 1), # 锁定Y轴范围为100(底部)到1(顶部) name = "QS 2024世界大学排名" # 自定义Y轴标题 ) + # 可选:调整Y轴文本样式,避免重叠或显示异常 theme(axis.text.y = element_text(angle = 0, vjust = 0.5))
关键参数说明
scale_y_reverse():直接反转Y轴方向,让排名第1的大学位于图的顶部,排名100的位于底部,符合排名类数据的直观展示逻辑。breaks:控制Y轴刻度的显示间隔,因为是TOP100离散排名,设置整数间隔避免刻度过于密集。limits:明确指定Y轴上下限,确保图表范围完全覆盖TOP100的排名区间。theme(axis.text.y):可选调整项,优化Y轴文本的对齐方式与显示角度,避免因刻度过多导致的重叠问题。
额外样式优化(可选)
如果需要进一步调整Y轴的视觉样式,比如加粗标题、修改刻度颜色,可以添加以下theme设置:
+ theme( axis.title.y = element_text(size = 12, face = "bold"), axis.text.y = element_text(size = 10, color = "#333333"), axis.line.y = element_line(color = "black", linewidth = 0.8) )
内容的提问来源于stack exchange,提问作者sul
相关产品推荐
相关产品推荐

