首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改geom_raster中的色带以更好地显示异常值

更改geom_raster中的色带以更好地显示异常值
EN

Stack Overflow用户
提问于 2019-06-14 00:54:27
回答 1查看 768关注 0票数 0

我有一个数据集,其中有几个异常值,我将其绘制为ggplot中的栅格。未经修改的配色方案倾向于以显示大多数数据的分布为代价来突出显示这些异常值。设置限制会有所帮助,但超过指定限制的值会丢失。有没有一种方法可以在色带的末端绘制高于限制的值?

下面是来自忠实数据集的一个示例。这不是我的数据的完美类比,因为没有引起问题的异常值,但它显示了我的问题。

ggplot(faithfuld, aes(waiting, eruptions)) +
  geom_raster(aes(fill = density))+
  scale_fill_gradientn(colours = 
  c("red", "orange", "yellow", "green","blue","purple","white"))

比方说,我希望减少对较高值的关注。也许有比设置限制更好的方法来做这件事?有了限制,我将数据丢失到最大值以上(这里是0.03)。

ggplot(faithfuld, aes(waiting, eruptions)) +
geom_raster(aes(fill = density))+
scale_fill_gradientn(limits = c(0,.03),
                   colours = c("red","orange", "yellow", "green","blue",
                               "purple","white"))

理想情况下,我希望像在GIS中那样绘制,超过我的限制的值将设置为色带的最大值。我可以随时修改数据来显示它,但我希望在ggplot中有一个更优雅的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-14 02:33:12

可以使用na.value定义异常值的颜色,并将异常值颜色与最大值的颜色进行匹配。

ggplot(faithfuld, aes(waiting, eruptions)) +
  geom_raster(aes(fill = density))+
  scale_fill_gradientn(limits = c(0,.03),
                       na.value = "white", #na.value color same as color for max value
                       colours = c("red","orange", "yellow", "green","blue",
                                   "purple","white"))

这样做的一个缺点是,对于白色,比例仍然显示0.03,尽管为了准确,它应该显示>0.03。您可能需要编辑比例以使标签准确。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56585299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档