在ggplot中设置上限以包括大于最大值的标签

Tom*_*Tom 11 r ggplot2

我的数据范围似乎总是大于y轴的顶部标签.有没有办法可以自动包含它而无需手动设置限制?

例如in

ggplot(data.frame(x=1:11, y=c(11:17,5:2)), aes(x,y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

我希望标签0和20出现在y轴上,o和12出现在x轴上(并且图表相应地展开).这应该自动完成,而不在比例选项中指定这些数字.

在此输入图像描述

seb*_*n-c 10

dat<-data.frame(x=1:10, y=c(11:17,5:3))
ggplot(dat, aes(x,y)) + 
  geom_point()+
  scale_y_continuous(breaks=c(pretty(dat$y, n=4),18), expand=c(0.25, 0.25))
Run Code Online (Sandbox Code Playgroud)

ggplot相当休息

pretty函数选择好的休息时间为10次幂的1,2或5倍.然后我只将18包含在该向量中.


Stu*_*les 10

以下解决方案如何:

library(ggplot2)

d <- data.frame(x=1:11, y=c(11:17,5:2))
px <- pretty(d$x)
py <- pretty(d$y)

ggplot(d, aes(x,y)) + geom_point() +
  scale_x_continuous(breaks=px, limits=range(px)) +
  scale_y_continuous(breaks=py, limits=range(px))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述