如何在ggplot中创建两个完全一致的离散y轴
你可以通过scale_x_discrete的sec.axis参数搭配dup_axis()实现需求,由于你的代码调用了coord_flip()做坐标轴翻转,原本映射到x轴的Month变量翻转后会成为左侧y轴,配置x轴的次轴后翻转就会得到和左侧完全一致的右侧y轴。
完整可运行代码如下:
# 加载ggplot2包 library(ggplot2) # 示例数据 Month <- c("Jan","Feb","Mar","Apr") Value <- c(12,6,13,3) xy <- data.frame(Month, Value) # 绘图代码 ggplot(xy, aes(x = Month, y = Value)) + geom_bar(stat = "identity", width = 0.6) + # 配置x轴次轴,直接复制原轴所有配置,仅修改次轴标签为Month scale_x_discrete(sec.axis = dup_axis(name = "Month")) + coord_flip()
代码说明:
dup_axis()是ggplot2提供的轴复制函数,会完全同步原轴的刻度值、标签顺序、显示规则,不需要手动额外配置刻度- 因为
Month最初被映射到x轴,所以次轴配置写在scale_x_discrete中,经coord_flip()翻转后,次轴会自动显示在图表右侧,和左侧y轴完全一致
内容的提问来源于stack exchange,提问作者Sue
相关产品推荐
相关产品推荐

