使用 ggplot2 删除图像图的零级别

发布于 2024-09-26 23:58:55 字数 694 浏览 0 评论 0原文

我正在使用 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() 中会导致其失败。

有没有一种方法可以做到这一点而没有缺点?

I'm using the geom_tile to draw an imagemap and want to clear out the zero level for clarity.

#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)

I have found 2 ways to do this but both have their drawbacks:

1)

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

This has the drawback that the min value colour isn't printed in the scale.

2)

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

This has the drawback that the alpha scale is plotted too. Wrapping the alpha argument in an I() causes it to fail.

Is there a way to do this without the drawbacks?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恍梦境° 2024-10-03 23:58:55

您可以对数据进行子集化。

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

You can subset your data.

qplot(..., data=subset(tdata, val > 0), ...) 
qplot(cat1,cat2,data=subset(tdata, val >0),geom="tile",fill=val)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文