【问题标题】:Scatterplot colour based on y-value基于 y 值的散点图颜色
【发布时间】:2013-06-26 20:58:35
【问题描述】:

我的数据被打包成两列 m (x,y)。我想用三种不同的颜色生成一个散点图来反映 y 的值。因此,对于低于 y1 的所有 x,y 值(比如 1)我想要颜色 1,对于 y1 和 y2 之间的 x,y 值我想要颜色 2,最后对于高于 y2 的 y 值我想要拥有第三种颜色。我如何在 R 中实现这一点?

谢谢

【问题讨论】:

    标签: r colors plot scatter-plot


    【解决方案1】:

    您可以使用cut 创建颜色级别,然后使用plot 中的颜色向量。

    set.seed(1104)
    x = rnorm(100)
    y = rnorm(100)
    colors = c("blue", "red", "green")
    breaks = c(y1=0, y2=1)
    
    # first plot (given breaks values)
    y.col2 = as.character(cut(y, breaks=c(-Inf, breaks, Inf), labels=colors))
    plot(x, y, col=y.col2, pch=19)
    
    # second plot (given number of breaks)
    y.col = as.character(cut(y, breaks=3, labels=colors))
    plot(x, y, col=y.col, pch=19)
    

    【讨论】:

    • 谢谢,这真的很有帮助!
    【解决方案2】:

    另一种选择是使用嵌套的ifelse 来定义颜色。

    使用@Ricardo 数据:

    dat <- data.frame(x = rnorm(100),y = rnorm(100))
    with(dat,
    plot(y~x, col=ifelse(y<y1,'red',
                         ifelse(y>y2,'blue','green')), pch=19))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2018-10-02
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 2019-11-27
      • 2021-12-01
      相关资源
      最近更新 更多