R语言 只设置ggplot的下限

lhcgjxsq  于 2023-04-18  发布在  其他
关注(0)|答案(5)|浏览(149)

是否可以只设置连续缩放的下限?我想让所有的图都基于0,而不需要指定上限。
例如

+ scale_y_continuous(minlim=0)
j13ufse2

j13ufse21#

可以使用expand_limits

ggplot(mtcars, aes(wt, mpg)) + geom_point() + expand_limits(y=0)

以下是两者的比较:

  • expand_limits

  • 关于expand_limits

ggplot2的1.0.0版本开始,您只能指定一个限制,而另一个限制通常是通过将第二个限制设置为NA来确定的。这种方法将允许扩展和截断轴范围。

ggplot(mtcars, aes(wt, mpg)) + geom_point() +
  scale_y_continuous(limits = c(0, NA))

通过ylim(c(0, NA))指定它给出了相同的图。

kpbpu008

kpbpu0082#

如何使用aes(ymin=0),如下所示:

ggplot(mtcars, aes(wt, mpg)) + geom_point() + aes(ymin=0)
3pmvbmvn

3pmvbmvn3#

你也可以尝试下面的代码,它会给予你最小y轴为零,也没有x轴和最小y值之间的额外间隙。

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

x4shl7ld4#

如果你想保持ggplot默认计算的比例上限“不变”,AND 消除下限上的填充,这样绘图区域从0开始,从ggplot2 v3.0.0+开始,你可以为比例的上限和下限指定单独的扩展值。
scale_y_continuous(limits = c(0, NA), expand = expansion(mult=c(0, 0.05)))
参见scale_continuous()help中的限制和扩展参数的描述,
使用便捷函数expansion()生成expand参数的值。默认情况下,对于连续变量,每边扩展5%,对于离散变量,每边扩展0.6个单位。
我们使用mult参数到expansion()来计算5%的膨胀。

示例

ggplot(mtcars, aes(wt, mpg)) + geom_point() +
  labs(subtitle="default")

ggplot(mtcars, aes(wt, mpg)) + geom_point() +
  scale_y_continuous(limits=c(0, NA))+
  labs(subtitle="specifying limits alone leaves default 5% padding on both ends")

ggplot(mtcars, aes(wt, mpg)) + geom_point() +
  scale_y_continuous(limits=c(0, NA), expand=expansion(mult=c(0, 0.05))) +
  labs(subtitle = "limits and an unequal expansion gets what we're after")

p4rjhz4m

p4rjhz4m5#

我不认为你可以直接这样做。但是作为一种变通方法,你可以模仿ggplot2确定上限的方式:

scale_y_continuous(limits=c(0, max(mydata$y) * 1.1))

相关问题