如何用ggplot指定不同的颜色

Pav*_*dis 6 r ggplot2

library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point(size=4)
Run Code Online (Sandbox Code Playgroud)

假设你有上述内容scatterplot.如何指定>= 25将绘制mpg 的点,red一个between 20 and 25 green0-20 blue

ggplot具体可以这样做吗?

Kon*_*lph 6

您分两步执行此操作:

首先,定义应具有不同颜色的组; 通过向数据框或内部添加另一列aes.我会aes在这里用:

aes(wt, mpg, color = cut(mpg, breaks = c(0, 20, 25, Inf)))
Run Code Online (Sandbox Code Playgroud)

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

scale_color_manual(values = c('blue', 'green', 'red'),
                   limits = c('(0,20]', '(20,25]', '(25,Inf]'))
Run Code Online (Sandbox Code Playgroud)

这指定了要使用的颜色(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]'))
Run Code Online (Sandbox Code Playgroud)

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

guides(color = guide_legend(title = 'mpg range'))
Run Code Online (Sandbox Code Playgroud)