如何在ggplot中使X轴0刻度与Y轴-10刻度交于轴交点?
让ggplot中X轴0刻度与Y轴-10刻度对齐在轴交点
首先修正你代码里的语法问题:数据框创建时y的赋值需要用c()包裹成向量,否则会报错。
下面是调整后的完整代码,可实现你要的轴刻度对齐效果:
# 修正数据框创建语法 df = data.frame(x = 1:10, y = c(-10, 1)) library(ggplot2) ggplot(df) + aes(x = x, y = y) + geom_point() # 加上几何图层才能显示数据点 theme_classic() + # X轴设置:刻度0-10,消除轴端空白 scale_x_continuous(breaks = 0:10, limits = c(0, 10), expand = c(0, 0)) + # Y轴设置:刻度-10-0,消除轴端空白 scale_y_continuous(breaks = -10:0, limits = c(-10, 0), expand = c(0, 0)) + # 调整轴位置,让X轴对齐Y=-10,Y轴对齐X=0 theme( axis.line.x = element_line(position = position_nudge(y = -10)), axis.line.y = element_line(position = position_nudge(x = 0)) )
关键调整说明:
expand = c(0, 0):移除轴两端的额外空白,让轴的起始/终点刚好匹配你设置的刻度范围- 轴位置调整:通过
theme参数把X轴定位到Y=-10的位置,Y轴保持在X=0的位置,实现两个刻度在轴交点处重合 - 添加
geom_point():原代码无几何图层,图表会是空的,加上后能显示数据点
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

