在一个图中根据不同的列制作两个geom_bar()图。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个图中根据不同的列制作两个geom_bar()图。相关的知识,希望对你有一定的参考价值。

我有一个数据框架,看起来像这样。

 Year     Women       Men
1 2013    145169      889190
2 2014    119064      849778
3 2015    210107     1079592
4 2016    221217     1427639
5 2017    205000     1692592
6 2018    273721     1703456
7 2019    434407     2010493

我想做一个geom_bar,其中x是一年,每一年都有两个条形的数字,分别来自女性和男性。我已经找到了一个解决方案,这个表应该看起来不同,但我想知道,如果有一个选项与这个工作。谢谢你的任何帮助:)

答案

您可以使用以下代码

library(tidyverse)

df %>% 
      pivot_longer(cols = -c(Year,Sl), values_to = "Value", names_to = "Name") %>% 
      ggplot(aes(x = Year, y = Value, fill = Name))+geom_col(position = "dodge")

enter image description here

数据

df = structure(list(Sl = 1:7, Year = 2013:2019, Women = c(145169L, 
119064L, 210107L, 221217L, 205000L, 273721L, 434407L), Men = c(889190L, 
849778L, 1079592L, 1427639L, 1692592L, 1703456L, 2010493L)), class = "data.frame", row.names = c(NA, 
-7L))

以上是关于在一个图中根据不同的列制作两个geom_bar()图。的主要内容,如果未能解决你的问题,请参考以下文章

如何双重填充具有两个特征的 geom_bar

根据不同的条件对两个不同的列进行分组和求和

如何在时间序列图中使用 geom_bar stat="identity" 设置 Bin Width?

如何让这个 ggplot2 geom_bar 图中的条形图使用 Rcolorbrewer 调色板?

如何根据不同的 WHERE 选择一列并生成两个不同的列

根据第三列值在 bigquery 中选择两个不同的列