代码之家  ›  专栏  ›  技术社区  ›  Alex Holcombe

更改ylim(轴限制)会使数据落在范围之外。如何预防这种情况?

  •  15
  • Alex Holcombe  · 技术社区  · 15 年前
    df <- data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1))
    g=ggplot(data=df,aes(x=age,y=veg))
    g=g+stat_summary(fun.y=mean,geom="point")
    

    点反映了每个年龄段的蔬菜平均值,这是我所期望的,并希望在使用下面的命令更改轴限制后保留。

    g=g+ylim(0.2,1)
    

    不幸的是,使用上述命令更改轴限制会导致veg==0子集从数据中删除,从而

    “警告消息:删除了包含缺少值的4行(stat_summary)”

    这很糟糕,因为现在数据图(stat_summary mean)忽略了veg==0点。如何预防这种情况?我只想避免显示绘图的空白部分-坐标从0到.2,但不要从统计摘要计算中删除相关数据。

    1 回复  |  直到 15 年前
        1
  •  25
  •   kohske    15 年前

    您可以通过指定coord系统来实现这一点:

    df <- data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1))
    g=ggplot(data=df,aes(x=age,y=veg))
    g=g+stat_summary(fun.y=mean,geom="point")
    g+coord_cartesian(ylim=c(0.2,1)) #do not use +ylim() here
    
    推荐文章