ggplot:分组和绘制多条线,但分开处理

ggplot: grouping and plotting multiple lines, but handle them separately

我有这个数据框: 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 条线,每个国家一条。 但是我不知道如何 select 这些行分别来操作它们。例如,为阿根廷线赋予红色等。 另外,我想添加一个带有 2 列的 facet_grid() ,这样我就可以在左边的图中看到来自阿根廷 + 澳大利亚的线,在右边的图中可以看到来自比利时的线 + U.S.

如何划分分组才能做到这一点?

试试这个:

  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() 您可以单独控制每一行的颜色