【问题标题】:How do I color two different dataframes on one chart using ggplot?如何使用 ggplot 在一个图表上为两个不同的数据框着色?
【发布时间】:2020-11-13 00:59:27
【问题描述】:

如何在同一个图上为两个数据系列着色不同的颜色?

我结合了两个不同的数据框:

ages_test=c('<18','18-24','25-44','45-64','65+',"UNKNOWN")

values_test=c(411694,1313082,2301521,918416,41728,178)
df_test1=data.frame(ages_test,values_test)

values_test=c(134924,350794,612476,228237,10472,49)
df_test2=data.frame(ages_test,values_test)

df_combined = rbind(df_test1, df_test2)

然后我创建了这个情节:

df_combined %>%
  ggplot(aes(x=ages_test, y=values_test), label=values_test) +
  geom_bar(stat='identity') +
  scale_y_continuous(breaks=scales::breaks_extended(n=10), labels=comma) +
  geom_text(hjust=.5, vjust=-1, size=3, aes(label=comma(values_test)))

此图表包含两个不同的数据系列和每个系列的标签。我希望其中一个颜色不同,以便区分两者。

我尝试像ggplot(aes(x=ages_test, y=values_test, label=values_test, fill=values_test)) 那样将fill=values_test 添加到aes,但结果图表显示颜色渐变:

但是,我只想要两种不同的颜色,每个数据系列一种。

我也尝试过使用color=as.factor(values_test),但这会产生 12 种不同的颜色,一种用于我的组合数据框中的每个年龄类别。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    使用dplyr::bind_rows 将两个具有唯一ID 的数据框组合起来。然后,您可以在aes 中使用fill 为它们赋予不同的颜色。

    library(ggplot2)
    df_combined = dplyr::bind_rows(df_test1, df_test2, .id = 'id')
    
    ggplot(df_combined, 
          aes(x=ages_test, y=values_test, fill = id), label=values_test) +
      geom_bar(stat='identity') +
      scale_y_continuous(breaks= scales::breaks_extended(n=10), 
                         labels=scales::comma) +
      geom_text(hjust=.5, vjust=-1, size=3, aes(label=scales::comma(values_test)))
    

    【讨论】:

    • 再次感谢!你昨天也帮了我:stackoverflow.com/questions/64796835/…
    • 如何自定义颜色?我尝试添加以下+ scale_color_manual(values=c('dark green','green')),但没有成功。
    • 使用scale_fill_manual : scale_fill_manual(values = c('dark green','green'))
    • 您使用了哪些资源来学习 R?大约一周前我开始使用不同的代码片段将事物组合在一起。这不是很有效。
    • 大量练习编码和潜伏在 stackoverflow 上帮助我学习了 R。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 2021-09-06
    • 1970-01-01
    • 2022-09-27
    • 2011-08-17
    相关资源
    最近更新 更多