【发布时间】:2010-10-12 16:01:11
【问题描述】:
我正在使用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 比例。将 alpha 参数包装在 I() 中会导致它失败。
有没有办法做到这一点而没有缺点?
【问题讨论】:
-
“清零”是什么意思?一方面,您的测试数据在 tdata$val 中没有任何零...
-
应该可以,除非
set.seed(1)在您的系统上生成不同的随机数。我的意思是如果值为零,而不是色带的底端,则不绘制任何内容。