如何在ggplot中从第一个轴刻度开始

时间:2019-03-25 15:13:47

标签: ggplot2

我想总是从原点的第一个轴刻度开始,例如这张图片:

enter image description here

xlimexpand_limitsscale_x_continuous并没有真正的作用-第一轴刻度和原点之间总是有很小的间隔。应该有一个简单的方法可以做到这一点。预先非常感谢。

2 个答案:

答案 0 :(得分:1)

不幸的是,ggplot2设置为展开轴并因此填充轴刻度,并且没有简单的功能来强制它们在原点处齐平。我发现获取轴刻度的最佳方法是使用coord_cartesian()关闭轴扩展并手动指定限制

require(ggplot2)

ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  theme_classic() +
  coord_cartesian(expand = FALSE, #turn off axis expansion (padding)
                  xlim = c(1, 6), ylim = c(10, 35)) #manually set limits

我更喜欢在coord_cartesian()中定义限制,而不是在scale_y_...()scale_x_...()中定义限制,因为coord_cartesian()会裁剪视图,但不会更改基础数据。 scale...()函数会删除超出限制的数据,如果裁剪出异常值,可能会弄乱拟合线(stat_smooth())或摘要统计信息。

enter image description here

答案 1 :(得分:0)

对我有用的解决方案是将选项expand=c(0,0)与限制选项一起设置,例如:

  scale_y_continuous(expand = c(0, 0), limits = c(10,NA))

然后,Y轴从带有标签10的第一个刻度开始于原点。