我遇到了创建带有聚合数据的堆叠条形图的问题。当处理来自他人报告的聚合表时,我通常使用Excel,但我想开始在R中制作所有的图表,可能使用lattice或ggplot。在Excel中,对以下聚合数据进行堆叠条形图只需要点击几下(插入、列图、堆叠列),你会得到这样的结果。
。
除了想在R中制作此图表外,我还想使用ggplot的分面功能,即在ggplot中并排放置两个堆叠条形图以比较两个组(A和B)。我已经尝试了其他图表,这似乎是最好的选择。这是数据。Excel图表仅显示组A(数字为百分比)。
在展示两组差异的分面之前,我遇到了一个问题,就是用ggplot2无法创建单个堆积条形图(就像上面那个)。我猜想我不应该有三个变量(全职、兼职、每周工作超过16小时的兼职),而应该为每种情况只有一行,因此不应该使用“宽格式”。
如果这是唯一的方法让ggplot绘制图表,您将如何通过几行代码从一个格式更改为另一个格式?我经常遇到这种类型的数据,因此拥有标准化的过程会很好。我也尝试了ggplot选项“identity”,但没有取得太多成功。
非常感谢任何帮助。
谢谢
![enter image description here](https://istack.dev59.com/I3Plr.webp)
除了想在R中制作此图表外,我还想使用ggplot的分面功能,即在ggplot中并排放置两个堆叠条形图以比较两个组(A和B)。我已经尝试了其他图表,这似乎是最好的选择。这是数据。Excel图表仅显示组A(数字为百分比)。
D<-as.data.frame(structure(list(Group = c("A", "A", "A", "A", "A",
"A", "B", "B", "B", "B", "B", "B"
), Education = c("NVQ Level 4 and above", "NVQ Level3", "NVQ Level 2",
"Below NVQ Level 2", "Other qualification", "No qualification",
"NVQ Level 4 and above", "NVQ Level3", "NVQ Level 2", "Below NVQ Level 2",
"Other qualification", "No qualification"), Full.Time = c(47,
27, 23, 17, 18, 9, 36, 26, 22, 22, 27, 12), PT.16.hours = c(20,
24, 22, 18, 18, 12, 22, 21, 21, 22, 14, 10), PT.16.hours.1 = c(12,
11, 10, 11, 13, 5, 24, 25, 25, 20, 16, 12)), .Names = c("Group",
"Education", "Full.Time", "PT>16.hours", "PT<16.hours")))
在展示两组差异的分面之前,我遇到了一个问题,就是用ggplot2无法创建单个堆积条形图(就像上面那个)。我猜想我不应该有三个变量(全职、兼职、每周工作超过16小时的兼职),而应该为每种情况只有一行,因此不应该使用“宽格式”。
A NVQ Level 4 and above 47 20 12
A NVQ Level3 27 24 11
I should have
Group Education Work Percentage
A NVQ Level 4 and above Full Time 47
A NVQ Level 4 and above PT>16 hours 20
如果这是唯一的方法让ggplot绘制图表,您将如何通过几行代码从一个格式更改为另一个格式?我经常遇到这种类型的数据,因此拥有标准化的过程会很好。我也尝试了ggplot选项“identity”,但没有取得太多成功。
非常感谢任何帮助。
谢谢