R中具有多列整数的堆积条形图

Posted

技术标签:

【中文标题】R中具有多列整数的堆积条形图【英文标题】:Stacked Bar Graph with Multiple Columns of Integers in R 【发布时间】:2021-05-02 21:57:45 【问题描述】:

为我假设的事情寻求帮助是一项非常简单的任务。从下面的数据中,我想创建一个堆叠条形图,带有fill = colnames(df_Consumers)[2,4]。我试图让 x 轴为df_Consumers$Month,y 轴为df_Consumers$Referrals,第 2 列和第 4 列是堆叠的条形图。我希望这是有道理的。如果我太含糊,请提前道歉。我的 ggplot 代码和数据如下。提前致谢!

ggplot(df_Consumers, aes(x = Month, y = Referrals)) +
  geom_col(aes(fill = df_Consumers[2, 4]))

【问题讨论】:

您不应将数据添加为图像。我们无法从图像中复制数据。以更易于复制的可复制格式添加它们。阅读how to give a reproducible example。 @RonakShah 谢谢你。我不知道如何将数据添加到问题中。 【参考方案1】:

ggplot 喜欢长数据帧。我建议如下:

library(tidyverse)

df_Consumers %>%
  select(-Referrals) %>%
  pivot_longer(c(New.Consumers, No.Fill), names_to = "type", values_to = "value") %>%
  ggplot() + 
  aes(x = Month, y = value, fill = type) + 
  geom_col()

【讨论】:

谢谢,这正是我几个小时以来一直在尝试做的事情。我确实有一个问题。该图以随机顺序显示在 x 轴上。我怎样才能改变它,所以 2020 年 9 月是第一个等等?另外,对于我自己和其他人,您能否简要解释一下 ggplot 的长数据框。这是我第一次听说这个。我也在研究它。再次感谢! 只是为可能与我有相同问题的其他人提供的快速更新。下面是关于长数据帧和宽数据帧以及如何转换它们的链接。 cookbook-r.com/Manipulating_data/… 当您想在ggplot2 中订购任何东西时,将该列转换为有序因子。在这里,我将在pivot_longer 行之后添加mutate(Month = factor(Month, levels = c("Sep 2020", "Oct 2020", "Nov 2020", "Dec 2020", "Jan 2021", "TOTALS")) %>%。这应该让你的 x 轴按顺序排列。 不得不玩一下。出于某种原因,它不起作用,但我从您使用mutate 的建议中发现了这一点。再次感谢您!

以上是关于R中具有多列整数的堆积条形图的主要内容,如果未能解决你的问题,请参考以下文章

为多个变量制作堆积条形图 - R 中的 ggplot2

R 具有两个因子变量的堆积百分比条形图 - 如何在图中标记百分比,而不计算 NA?

ZingChart:具有一系列空值的堆积条形图

创建具有多个维度的堆积条形图

堆积条形图在ggplot中具有不同的宽度

如何使用 R lattice 重塑堆积条形图的数据 [重复]