我想根據值繪製不同顏色的圖。我寫了下面的代碼,使用基於R中值的條件顏色繪圖
np_graph <- data.frame(C1 = -5:5, C2 = -5:5)
x=np_graph2$C1
y=np_graph2$C2
plot(x,y,xlab="PC1",ylab="PC2")
現在,如果X的值大於0,那麼該值應該是綠色的(在圖中)。如果Y的值大於0,那麼該值應該是紅色的(在圖中)。
有人可以幫我嗎?
我想根據值繪製不同顏色的圖。我寫了下面的代碼,使用基於R中值的條件顏色繪圖
np_graph <- data.frame(C1 = -5:5, C2 = -5:5)
x=np_graph2$C1
y=np_graph2$C2
plot(x,y,xlab="PC1",ylab="PC2")
現在,如果X的值大於0,那麼該值應該是綠色的(在圖中)。如果Y的值大於0,那麼該值應該是紅色的(在圖中)。
有人可以幫我嗎?
參數col
將設置顏色,您可以將其與ifelse
語句一起使用。有關更多詳細信息,請參閱?plot
。
# using base plot
plot(x,y,xlab="PC1",ylab="PC2", col = ifelse(x < 0,'red','green'), pch = 19)
要做到同樣的事情在ggplot2
。
#using ggplot2
library(ggplot2)
ggplot(np_graph) + geom_point(aes(x = C1, y = C2, colour = C1 >0)) +
scale_colour_manual(name = 'PC1 > 0', values = setNames(c('red','green'),c(T, F))) +
xlab('PC1') + ylab('PC2')
+1非常好。同時也是爲了展示如何製作一個可重複的例子。 – Andrie 2012-08-07 05:00:34
@ mnel很好的答案。雖然我有一個問題給你。如果我想提出x> 1&y> 2那麼值的範圍,然後是綠色,x < 1 & y > 2然後紅色,其餘的點以灰色。我將如何能夠完成它? – Akshay 2013-07-09 14:51:08
@aarn - 一對嵌套的'ifelse'語句應該這樣做。例如'col = ifelse(x> 1&y> 1,'red',ifelse(x <1&y> 2,'green','gray'))' – mnel 2013-07-09 23:16:17
[重複性的問題](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)是要走的路。我已經編輯你的問題,使其如此。 – mnel 2012-08-07 02:14:43
[以前的問題提供了答案。](http://stackoverflow.com/questions/8774002/color-data-point-in-r-plot/) – 2012-08-07 02:20:38