2016-09-14 93 views
-2

我的data.frame的值在-10到10之间,我的data.frame有2列。我想创建一个ggplot图。根据数值绘制散点图

我需要给颜色值大于8或小于-8的点。

我该如何通过geom_point()中的ggplot来做到这一点?

+5

我觉得你正在寻找的是在这个答案这里http://stackoverflow.com/questions/11838278/plot-with-conditional-colors-based-on-values-in-r - 连接颜色与ifelse语句 – PhiSeu

+1

请阅读关于[如何问一个好问题](http://stackoverflow.com/help/how-to-ask)以及如何给出[可重现的示例]的信息(http://stackoverflow.com /问题/ 5963269 /如何对化妆一个伟大-R-重复性,例如/ 5963610)。这会让其他人更容易帮助你。 – Jaap

+0

见例如http://stackoverflow.com/questions/21536835/ggplot-colour-points-by-groups-based-on-user-defined-colours或http://stackoverflow.com/questions/9827193/color- ggplot-points-based-defined-color-codes – Cath

回答

0

我上面的意见同意了,反正我觉得这是你在找什么

p <- runif(100, min=-10, max=10) 
g <- 1:100 
dat <- data.frame(p, g) 
dat$colors <- 1 
dat[which(dat$p < (-8) | dat$p > 8),"colors"] <- 0 

library(ggplot2) 

ggplot(dat, aes(x=g, y=p, group=colors)) + geom_point(aes(color=as.factor(colors))) 

导致此: enter image description here

编辑: 在以前版本的这个回答不同的颜色被表示为连续变量。我将其更改为as.factor的二元格式。

+0

OP可能不想要连续的色阶。 – Axeman