【发布时间】:2018-03-30 08:31:33
【问题描述】:
一直在寻找几个小时,我尝试了所有的解决方案,包括休息、切... 这是我的问题: 我有一个这样的数据框:
col1 col2
1 NA NA
2 NA 4.73
3 NA NA
4 NA NA
5 NA NA
6 8.72 7.64
7 2.32 NA
8 NA NA
9 8.29 6.23
10 9.36 7.72
我是这样画的:
scatter_plot <- ggplot(AB2, aes(col1,col2))
scatter_plot + geom_point(color=ifelse(col1>5,"#5DCA03","red")) +
labs(x = "col2", y = "col1") + geom_smooth(method="lm")
但我真正想要的是当 col1 OR col2 的红点
谢谢你
编辑:
应用 Luke Hayden 解决方案后:
scatter_plot <- ggplot(AB2, aes(col1,col2))
scatter_plot + geom_point(color=ifelse(col1<5 | col2<5,"red","#5DCA03")) +
labs(x = "col2", y = "col1") +
geom_smooth(method="lm")
我得到了这个情节rplot
虽然我不明白为什么 col1 和 col2 的红点值 > 5
第二次编辑:
在 Luke Hayden 的最后一次编辑之后,我解决了这个问题,虽然我必须将 lm 颜色设置为蓝色,否则我有 2 lm:1 表示点值 5. 现在代码如下:
scatter_plot <- ggplot(AB2, aes(col1,col2, col=valid))
scatter_plot + geom_point() +
labs(x = "col2", y = "col1") +
scale_color_manual(values=c("red","#5DCA03"))+
geom_smooth(method="lm", color="blue")
【问题讨论】:
-
首先,您需要将颜色定义与
aes。其次,col1 > 5你需要什么(删除ifelse),因为你将传递逻辑向量。最后,使用函数指定想要的颜色:scale_color_manual(参数values)。