【问题标题】:How to specify different colors with ggplot如何使用 ggplot 指定不同的颜色
【发布时间】:2019-04-03 23:28:02
【问题描述】:
library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point(size=4)

假设你有上面的scatterplot。如何指定&gt;= 25 mpg 点将被绘制redbetween 20 and 25 green0-20 blue

这可以通过ggplot 来完成吗?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以分两步完成:

    首先,您定义应该具有不同颜色的组;通过向数据框或aes 中添加另一列。我将在这里使用aes

    aes(wt, mpg, color = cut(mpg, breaks = c(0, 20, 25, Inf)))
    

    其次,通过手动指定颜色或填充比例:

    scale_color_manual(values = c('blue', 'green', 'red'),
                       limits = c('(0,20]', '(20,25]', '(25,Inf]'))
    

    这指定使用哪些颜色 (values) 以及将它们分配给哪些标签 (limits);这些是cut生成的分组名称。

    综合起来:

    ggplot(mtcars) +
        aes(wt, mpg, color = cut(mpg, breaks = c(0, 20, 25, Inf))) +
        geom_point(size = 4) +
        scale_color_manual(values = c('blue', 'green', 'red'),
                           limits = c('(0,20]', '(20,25]', '(25,Inf]'))
    

    您可以通过将分组作为单独的列添加到数据中来改进图例标题,或者提供guides 函数调用:

    guides(color = guide_legend(title = 'mpg range'))
    

    【讨论】:

      【解决方案2】:

      当然可以,尽管这种类型的工作可能最适合在ggplot() 之前使用您的数据框。你可以像这样使用ifelse()

      library(ggplot2)
      
      p <- ggplot(mtcars, aes(wt, mpg))
      p + geom_point(size = 4, 
                     aes(color = ifelse(mpg > 25, "> 25", 
                                        ifelse(mpg > 20, "20-25", "< 20")))) +
        scale_color_manual(values = c("> 25" = "red", "< 20" = "blue", "20-25" = "green"),
                           name = "MPG"  )
      

      您无需调用guides() 来创建标题,您可以将其传递给scale_color_manual() 中的name = .. 参数

      【讨论】:

      • 注意:代码中的颜色名称与图中的颜色不对应。它们或多或少匹配纯属巧合(事实上它们不匹配,它们不匹配)。
      • 尝试添加+ scale_colour_manual(values = c("red" = "red","blue" = "blue","green" = "green")) 以避免@KonradRudolph 提到的问题。此外,尝试将 color 变量创建为数据集列,以获得更好的图例/标题。
      • 感谢大家的反馈,我使用了你们的部分建议/批评来更新
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多