2016-09-14 97 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