根据 R 中的值绘制条件颜色 [重复]

Posted

技术标签:

【中文标题】根据 R 中的值绘制条件颜色 [重复]【英文标题】:Plot with conditional colors based on values in R [duplicate] 【发布时间】:2012-08-04 00:20:26 【问题描述】:

我想根据值绘制不同颜色的图表。我写了下面的代码,

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,则该值应为红色(在图中)。

有人可以帮我吗?

【问题讨论】:

【参考方案1】:

或者,在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()

【讨论】:

【参考方案2】:

参数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 非常好。也用于展示 newby 如何制作可重现的示例。 @mnel 非常好的答案。虽然我有一个问题要问你。如果我想提出一系列值,例如 x > 1 & y > 2 然后是绿色,x 2 然后是红色,其余点为灰色。我将如何完成它? @aarn -- 几个嵌套的ifelse 语句应该可以做到这一点。例如` col = ifelse(x>1&y>1,'red', ifelse(x2,'green','grey'))` @mnel 如果满足三个条件怎么办?

以上是关于根据 R 中的值绘制条件颜色 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

为R中的每个客户端绘制不同颜色的折线图[重复]

R - 基于条件的情节中的组织样线的不同颜色

绘图中的颜色点因值向量而异

如何根据条件(组中的值)更新列?

R:从R中的大型数据集中根据列中的值删除行[重复]

根据 R 中的条件创建重复行