代码之家  ›  专栏  ›  技术社区  ›  James

使用ggplot2删除图像映射的零级

  •  0
  • James  · 技术社区  · 15 年前

    我正在使用 geom_tile 为了清晰起见,绘制一张图像地图并清除零级。

    #dummy data
    set.seed(1)
    tdata <- data.frame(cat1=rep(letters[1:3],4),cat2=sort(rep(LETTERS[1:4],3)),val=rpois(12,1.5))
    tdata$val<-tdata$val/max(tdata$val)
    

    我找到了两种方法,但都有缺点:

    1)

    qplot(cat1,cat2,data=tdata,geom="tile",fill=val) + scale_fill_continuous(limits=c(.Machine$double.eps,1))
    

    这有一个缺点,即最小值颜色没有打印在比例中。

    2)

    qplot(cat1,cat2,data=tdata,geom="tile",fill=val,alpha=ifelse(val,1,0))
    

    这有一个缺点,即阿尔法比例也被绘制出来了。将alpha参数包装在 I() 导致失败。

    有没有办法做到这一点而没有缺点?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Brandon Bertelsen    15 年前

    您可以将数据子集。

    qplot(..., data=subset(tdata, val > 0), ...) 
    qplot(cat1,cat2,data=subset(tdata, val >0),geom="tile",fill=val)