【问题标题】:GGplot scatterplot color intervalGGplot 散点图颜色区间
【发布时间】:2021-05-25 20:30:02
【问题描述】:

我目前正在重新开始使用 R,但已经有一段时间了,所以我有点生疏了。

我有以下代码用于使用 ggplot2 进行绘图:

ggplot(NewData, aes(x=PAH16Cons ,y=Depth, group(FileName)))+
                geom_point(aes(colour=PAH16Cons))+
                scale_y_continuous(trans="reverse")+
                facet_wrap(facets = vars(FileName))+
                scale_color_gradient2("Cons mg/kg ts", 
                                      breaks =c(0,100,500),
                                      low = 'green',
                                      mid = 'yellow',
                                      high = 'red')

我试图改变绘图的颜色,使 0-100 之间的值是绿色,100-500 是黄色,500 以上是红色。

但是,如您所见,我没有得到任何帮助,我们将不胜感激

【问题讨论】:

  • 您必须设置midpoint,默认情况下等于0。这就是为什么你的渐变从黄色开始。
  • 哦,我明白了.. 所以如果我想让所有低于 100 的值成为一种绿色,所有介于 100 和 500 之间的值都是一种黄色,所有高于 500 的值都是一种红色,这不是办法吗?
  • 澄清一下,您要使用颜色渐变还是单色阴影?如果要使用单一颜色表示三组值,则应使用scale_color_manual() 而不是scale_color_gradient2()。

标签: r ggplot2


【解决方案1】:

如果您想为每个值范围使用一种颜色,您可以创建一个分组(因子)列,其级别为PAH16Cons 值 500。之后,在ggplot 中使用color 美学这一列,并使用scale_color_manual(values=c("green", "yellow", "red")) 自定义颜色。

NewData$cols <- with(NewData, 
    factor(
        ifelse(PAH16Cons < 100, "<100", 
            ifelse(PAH16Cons >= 100 & PAH16Cons <= 500, "100-500", ">500")), 
        levels = c("<100", "100-500", ">500")))

ggplot(NewData, aes(x=PAH16Cons ,y=Depth, group(FileName)))+
    geom_point(aes(colour=cols))+
    scale_y_continuous(trans="reverse")+
    facet_wrap(facets = vars(FileName))+
    scale_color_manual("Cons mg/kg ts", values=c("green", "yellow", "red"))

运行?scale_color_manual 以获取更多信息和示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多