r语言 - ggplot:对多条线进行分组和绘图,但分别处理



我有这个数据框架:df_long:

year       variable      value    
1970       Argentina     20
1980       Argentina     30
1990       Argentina     80
1970       Belgium       10
1980       Belgium       22
1990       Belgium       80
1970       U.S.          12
1980       U.S.          36
1990       U.S.          80
1970       Australia     11
1980       Australia     12
1990       Australia     90

我这样做了:

p <- ggplot(df_long, aes(year, value)) +
geom_line(aes(colour = variable, group = variable))
show(p)

我可以在同一个图上看到4条线,一条代表一个国家。但是我不知道如何分别选择这些线来操作它们。例如,给阿根廷线涂上红色,等等。此外,我还想添加一个带有两列的facet_grid(),这样我就可以看到左边是阿根廷+澳大利亚的曲线图,右边是比利时+美国的曲线图。

我如何划分分组以便我可以这样做?

试试这个:

  1. tibble添加新列:

    df <- df %>% mutate(group = case_when(
    variable %in% c("Australia", "Argentina") ~ "group 1",
    variable %in% c("Belgium", "U.S.") ~ "group 2"
    ))
    
  2. 绘制新的df:

    ggplot(df, aes(year, value)) +
    geom_line(aes(colour = variable, group = variable)) + 
    scale_color_manual(values=c("red", "blue", "green", "orange")) + 
    facet_wrap(~group)
    

使用scale_color_manual(),您可以单独控制每一行的颜色

最新更新