大佬教程收集整理的这篇文章主要介绍了如何为散点图对角线的选定部分着色?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试选择对角线内的点,但如果您查看该图,它也会选择对角线下方的点。
IBD$color <- ifelse((IBD$Z0 < 0.5 &
IBD$Z0 > 0.10 &
IBD$Z1 < 0.9 &
IBD$Z1 > 0.5),"OK","BAD")
我想用蓝色绘制点而不选择对角线下方的点。在此处选择 IBD$color
的正确方法是什么?
ggplot(IBD,aes(x=Z0,y=Z1))+ geom_point(aes(color=color)) + ggtitle("Replication dataset - 2441")
我相信您的建议应该是三种颜色:蓝色/红色表示好/坏,也许灰色表示不在对角线上或附近的点。为此,我建议您的 ifelse
也应该更复杂一些,以包含与对角线的“距离”。
这里有一些假数据来模仿你的情节:
## generate fake data
set.seed(42)
dat <- data.frame(Z0=runif(10000),Z1=runif(10000))
dat <- dat[(dat$Z0 + dat$Z1) < 1,]
## your processing picks up here
dat$COLOR <- with(dat,ifelse((Z1 + Z0) < 0.95,"Boring",ifelse(0.1 < Z0 & Z0 < 0.5 & 0.5 < Z1 & Z1 < 0.9,"OK","Bad")))
ggplot(dat,aes(Z0,Z1)) +
geom_point(aes(color = COLOR)) +
scale_color_manual(values = c(Boring="gray",OK="blue",Bad="red"))
如果你想控制COLOR
图例的顺序(默认会按字母顺序排序),那么你可能需要使用factor
s,也许
dat$COLOR <- factor(dat$COLOR,levels = c("OK","Bad","Boring"))
在绘图之前。
如果您使用 dplyr
,使用 case_when
来管理处理(和分解)可能更简单,也许:
library(dplyr)
dat %>%
mutate(
COLOR = case_when(
(Z1 + Z0) < 0.95 ~ "Boring",between(Z0,0.1,0.5) & between(Z1,0.5,0.9) ~ "OK",TRUE ~ "Bad"),COLOR = factor(COLOR,"Boring"))
) %>%
ggplot(aes(Z0,Bad="red"))
结合了 between(.)
和 case_when
的易用性。 (请注意,between
使用 封闭 结束,因此这实际上等同于 0.1 <= Z0 & Z0 <= 0.5
等)
以上是大佬教程为你收集整理的如何为散点图对角线的选定部分着色?全部内容,希望文章能够帮你解决如何为散点图对角线的选定部分着色?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。