47

値に基づいて異なる色でグラフをプロットしたいと思います。私は以下のコードを書きました、

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の場合、その値は赤で表示されます(グラフ内)。

誰かがこれで私を助けることができますか?

4

2 に答える 2

109

引数は色を設定します。これをステートメント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')

ここに画像の説明を入力してください

于 2012-08-07T02:11:47.797 に答える
10

または、でggplot2、ifelseステートメントに基づいて新しい列「色」を設定し、を使用scale_color_identityしてそれらの色をグラフに適用することもできます。

np_graph %>% mutate(Color = ifelse(C1 > 0, "green", "red")) %>%
  ggplot(aes(x = C1, y= C2, color = Color))+
  geom_point()+
  scale_color_identity()

ここに画像の説明を入力してください

于 2020-01-30T16:11:45.280 に答える