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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R - 基于条件的情节中的组织样线的不同颜色相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的data.frame(df)

    mean      t value
    0.004      3.12
    0.021      3.41 
      .         .
      .         .
   -0.067     -3.60

我的实际data.frame有90列(90个均值和90个t值)

现在我绘制了第一列的值(均值)

mean<-df$mean
timestamp<-seq(from=-30, to=60)
plot(mean~timestamp, type="h", lwd=2, col="darkgrey", main="test")

结果看起来像这样

enter image description here

现在我想让我的情节线采用不同的颜色,取决于第二列的t值。

例如:如果t值> 2或<-2,则绘制的平均线应为黑色,如果t值介于-2和2之间,则应为灰色

我希望有办法做到这一点;)感谢你的帮助

答案

这将完成这项工作。只需要确定符合您条件的数据,然后使用lines添加它

df = data.frame(mean = rnorm(91), tvalue = rnorm(91,4,1.5))
mean<-df$mean
timestamp<-seq(from=-30, to=60)
t_pos = t_neg = mean
t_pos[df$tvalue< -2 & df$tvalue >2] = NA
t_neg[df$tvalue> -2 & df$tvalue < 2] = NA
plot(mean~timestamp, type="h", lwd=2, col="darkgrey", main="test")
lines(timestamp,t_pos,col="darkgrey", type = "h")
lines(timestamp,t_neg,col="black", type ="h")
另一答案

您可以在df中创建另一个列,该列指定基于tvalue的颜色。然后,您可以在colplot参数中指定此列。

df$cols <- ifelse(df$tvalue < -2 | df$tvalue > 2, "black", "gray")
with(df, plot(mean~timestamp, type="h", lwd=2, col=cols, main="test"))

数据

set.seed(510)
df <- data.frame(mean = sample(seq(-0.1, 0.2, length.out = 91), 91), 
                 tvalue = sample(seq(-3, 3, length.out = 91), 91))
df$timestamp <- seq(from=-30, to=60)

enter image description here

以上是关于R - 基于条件的情节中的组织样线的不同颜色的主要内容,如果未能解决你的问题,请参考以下文章

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

使用 matplotlib 更改小提琴图中单个最大和平均线的颜色

ggplot2中的多个图

在情节图中标记特殊日子

在R中绘制轮廓,每个群集具有不同的纹理

UE4中多种颜色轮廓线的后期处理