微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ggplot:分组和绘制多条线,但分别处理它们

如何解决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 条线,每个国家一条。 但我不知道如何分别选择这些行来操作它们。例如,给阿根廷线赋予红色等。 另外,我想添加一个带有 2 列的 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(),您可以单独控制每行的颜色

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。