ggplot中的Y轴不会从0开始

10

在这个图中,我将ylim设为0,但是y轴似乎仍然从-1开始,这非常恼人。我希望y轴从0开始。有解决办法吗?

sub1=subset(table.popstat,POPSTAT==1,select=c(1,3))
ggplot(sub1, aes(x=YR,y=Freq)) + ylim(0,15) +
  geom_bar(stat='identity') + 
  annotate("text",x=3,y=14.9,label="Population status",cex=10)

还有,我有30个类似的图形,y轴上有许多不同的范围。我需要一个通用代码,可以将文本放在图形的左上角,无论ymax是多少。可行吗?


1
我们不知道数据长什么样。运行summary(table.popstat)或者dput()命令输出数据的全部或部分将会很有帮助。 - hrbrmstr
2个回答

24

ggplot自动扩展轴线,以确保有足够的空间绘制点。您可以使用expand参数关闭此行为。

ggplot(sub1, aes(x=YR,y=Freq)) + 
  geom_bar(stat='identity') + 
  annotate("text",x=3,y=14.9,label="Population status",cex=10) +
  scale_y_continuous(expand = c(0, 0), limits = c(0, 15))

1
你漏掉了一个括号。 - DJJ

-1
p + scale_y_continuous(
  limits =   c(0,max_num),
  expand = expansion(mult = c(0,0.05))
)

这个函数(expansion(mult = c(0,0.05)))可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接