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中具有多列整数的堆积条形图的主要内容,如果未能解决你的问题,请参考以下文章