如何在ggplot2中设置X轴范围让线条精确停在x=3且不截断原始数据
问题原因
ggplot默认会为X轴两端自动添加少量扩展边距,你设置的coord_cartesian(xlim = c(0, 3))仅控制了数据的显示范围,但扩展生成的额外边距仍属于可视区域,所以超出x=3的线条片段会被绘制到右侧边距中。
解决方法
在现有代码中添加scale_x_continuous(expand = c(0, 0))关闭X轴的自动扩展即可,该操作仅调整坐标轴显示样式,不会修改或截断原始数据。
修改后的完整代码如下:
ggplot2::ggplot(nltt, aes(time, num, group = as.factor(rep), color = as.factor(rep))) + ggplot2::geom_line() + ggplot2::scale_x_continuous(expand = c(0, 0)) + ggplot2::coord_cartesian(xlim = c(0, 3)) + ggplot2::theme(legend.position = "none") + ggplot2::xlab("age")
如果需要保留极少量边距又避免线条越界,可以微调expand参数的加数值,比如expand = c(0, 0.02),可视需求调整即可。
内容的提问来源于stack exchange,提问作者Tianjian Qin
相关产品推荐
相关产品推荐

