【问题标题】:ggplot set ylim min OR maxggplot 设置 ylim 最小值或最大值
【发布时间】:2017-12-23 03:20:53
【问题描述】:

我正在尝试绘制一个图,我可以在其中指定 y 轴的最小值或最大值。但我得到Error in if (zero_range(range)) { : missing value where TRUE/FALSE needed

来自documentation

您可以将一个值保留为 NA 以根据数据范围进行计算。

因此,我做到了:

#Getting some data in
plot <- ggplot(mydata, 
               aes_string(y="yvar", x="xvar", colour="group", group="group", fill="group")
              )
#Adding some error bars
plot <- plot + geom_errorbar(aes(ymax=agg+var, ymin=agg-var), size=0.5, colour="black", data=mydata)

plot <- plot + geom_point(size=4) 
plot <- plot + geom_line(size=1)

#Here is when I just want to set y max
plot <- plot + coord_cartesian(ylim= c(NA, 100))

如果我删除 ylim 或将 NA 更改为数值,它会很好地工作。我在这里错过了什么?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以使用扩展限制仅在一个方向上扩展轴。例如:

    ggplot(mtcars, aes(wt, mpg)) +
      geom_point() +
      expand_limits(y=c(NA, 50))
    

    对于您的示例,它将是:

    plot + expand_limits(y=c(NA, 100))
    

    您甚至可以提供单个值。如果该值大于数据的最大值,它将扩大最大值。如果低于数据的最小值,它将扩大最小值。在您的示例中:

    plot + expand_limits(y=100)
    

    这里有两个可重现的例子:

    p = ggplot(mtcars, aes(wt, mpg)) +
      geom_point()
    
    p + expand_limits(y=-20)
    p + expand_limits(y=200)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2021-07-23
      • 1970-01-01
      相关资源
      最近更新 更多