gpt4 book ai didi

r - 来自 2 个单独数据框的 ggplot 堆积条形图

转载 作者:行者123 更新时间:2023-12-04 23:54:55 25 4
gpt4 key购买 nike

我一整天都在与这个难题作斗争并接近,但没有雪茄。我有两个数据框,它们是来自一个城市两个地区的两个独立社会经济调查的结果。我想在条形图中并排比较这些数据框中的列,以显示两个调查中对特定问题的响应频率(计数)。

每项调查中提出的问题都是相同的。但是,它们的编码略有不同,因此列名略有不同,如下所示!我已经设法将我的两个数据框( arbn )中的数据与原始数据一起绘制在同一个条形图上,即无需合并数据框。但是,我似乎无法并排绘制堆叠的条形图。

我将 ggplot2 与以下代码一起使用:

    ggplot(bn, aes(A8_HHH_hig, fill=A6_Sex_HHH))
+ geom_bar(position="stack", alpha=0.5)
+ geom_bar(data=ar, aes(A9_HHHedulevl, fill=A7_HHsex), position="stack", alpha=0.5)

产生这个:
enter image description here

正如您会注意到的,我试图根据男性和女性受访者在两个数据框架中的最高受教育水平来绘制他们之间的分布图。 (请注意,受访者的性别在每个数据框中也有不同的编码,即男/女和女/女。)

我真的很想将这两个堆叠的条形图并排绘制在同一个网格上,这样我就可以轻松比较值。但是,我不确定是否可以使用 position="dodge"选项在这里,因为值来自不同的数据帧。

有谁知道这是否可能?!或者也许另一种比较这些值的方式,在视觉上?

如果有人有时间看看,我已经附上了一些可重现的代码!

谢谢

dput(ar)


structure(list(District = c("Angwan Rimi", "Angwan Rimi", "Angwan Rimi", 
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi"), A9_HHHedulevl = structure(c(9L,
9L, 9L, 9L, 8L, 9L, 5L, 9L, 9L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 2L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 3L, 9L, 3L, 9L, 9L, 9L, 9L,
7L, 7L, 8L, 6L, 9L, 9L, 8L, 9L, 9L, 8L, 6L, 9L, 9L, 9L, 9L, 8L,
6L, 9L, 9L, 9L, 6L, 9L, 9L, 1L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 4L, 9L, 6L, 9L, 9L, 9L, 9L, 6L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 8L, 6L, 8L, 9L, 9L, 9L, 6L, 6L, 3L, 6L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 6L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 6L, 9L, 9L, 9L,
3L), .Label = c("Adult Education", "Junior Secondary", "koranic",
"NCE", "None", "Polytechnic", "Senior Primary", "Senior Secondary",
"University"), class = "factor"), A7_HHsex = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L), .Label = c("female", "male"), class = "factor")), .Names = c("District",
"A9_HHHedulevl", "A7_HHsex"), row.names = c(1L, 2L, 3L, 4L, 5L,
6L, 7L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 19L, 20L,
21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L,
34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 46L, 47L,
48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L,
61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L,
74L, 75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L,
87L, 88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L,
100L, 101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L,
111L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 121L, 122L,
123L, 124L, 125L, 126L, 127L, 128L, 129L, 130L, 131L, 132L, 133L,
134L), class = "data.frame", na.action = structure(131:135, .Names = c("135",
"136", "137", "138", "139"), class = "omit"))

dput(bn)


structure(list(District = c("Barnawa", "Barnawa", "Barnawa", 
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa"), A8_HHH_hig = structure(c(7L, 7L, 7L, 12L, 7L, 7L,
12L, 4L, 4L, 4L, 4L, 4L, 9L, 7L, 7L, 10L, 4L, 1L, 4L, 7L, 10L,
12L, 12L, 12L, 7L, 12L, 9L, 6L, 4L, 11L, 4L, 4L, 4L, 10L, 12L,
12L, 12L, 12L, 7L, 10L, 9L, 11L, 7L, 7L, 7L, 7L, 9L, 7L, 7L,
7L, 7L, 9L, 7L, 12L, 12L, 7L, 12L, 11L, 7L, 7L, 12L, 12L, 12L,
12L, 12L, 12L, 7L, 12L, 10L, 10L, 12L, 8L, 4L, 4L, 12L, 12L,
4L, 12L, 12L, 12L, 7L, 7L, 9L, 2L, 9L, 12L, 2L, 5L, 12L, 7L,
10L, 10L, 12L, 10L, 10L, 4L, 10L, 1L, 5L, 7L, 1L, 10L, 10L, 10L,
10L, 10L, 10L, 3L, 10L, 10L, 4L, 10L, 10L, 10L, 10L, 10L, 4L,
10L, 10L, 10L, 3L, 10L, 9L, 4L, 4L, 4L, 4L, 12L, 12L, 12L, 12L,
3L, 7L, 7L, 5L, 7L, 7L, 12L, 12L, 7L, 10L, 7L, 7L, 7L, 12L, 12L,
7L, 7L, 12L, 12L, 12L, 12L, 12L, 7L, 12L, 12L, 12L, 12L, 12L,
10L, 10L, 12L, 12L, 9L, 12L, 12L, 7L, 6L, 12L, 12L, 7L, 12L,
10L, 5L, 12L, 12L, 7L, 11L, 12L, 12L, 12L, 5L, 7L, 7L, 12L, 12L,
7L, 7L, 7L, 12L, 7L, 7L, 12L, 12L, 12L, 1L), .Label = c("Adult Education",
"Junior Primary", "Junior Secondary", "Koranic", "NCE", "None",
"Polytechnic", "Prelim / JMB", "Senior Primary", "Senior Secondary",
"Technical College", "University"), class = "factor"), A6_Sex_HHH = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L,
2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L), .Label = c("F", "M"), class = "factor")), .Names = c("District",
"A8_HHH_hig", "A6_Sex_HHH"), row.names = c(NA, 196L), class = "data.frame")

这是我希望生产的那种东西的一个例子:

enter image description here
structure(list(sex = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L,
2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, NA, NA, NA, NA, NA,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L,
2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L,
2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L), .Label = c("female", "male"), class = "factor"),
education = structure(c(9L, 9L, 9L, 9L, 8L, 9L, 5L, 9L, 9L,
8L, 9L, 9L, 9L, 9L, 9L, 9L, 2L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 3L, 9L, 3L, 9L, 9L, 9L, 9L, 7L, 7L, 8L, 6L, 9L, 9L,
8L, 9L, 9L, 8L, 6L, 9L, 9L, 9L, 9L, 8L, 6L, 9L, 9L, 9L, 6L,
9L, 9L, 1L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 4L, 9L, 6L, 9L, 9L, 9L, 9L, 6L, 9L, 9L, 9L, 9L, 9L, 9L,
9L, 8L, 6L, 8L, 9L, 9L, 9L, 6L, 6L, 3L, 6L, 9L, 9L, 9L, 9L,
9L, 9L, 9L, 6L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 6L, 9L, 9L, 9L,
3L, NA, NA, NA, NA, NA, 6L, 6L, 6L, 9L, 6L, 6L, 9L, 3L, 3L,
3L, 3L, 3L, 7L, 6L, 6L, 8L, 3L, 1L, 3L, 6L, 8L, 9L, 9L, 9L,
6L, 9L, 7L, 5L, 3L, 12L, 3L, 3L, 3L, 8L, 9L, 9L, 9L, 9L,
6L, 8L, 7L, 12L, 6L, 6L, 6L, 6L, 7L, 6L, 6L, 6L, 6L, 7L,
6L, 9L, 9L, 6L, 9L, 12L, 6L, 6L, 9L, 9L, 9L, 9L, 9L, 9L,
6L, 9L, 8L, 8L, 9L, 11L, 3L, 3L, 9L, 9L, 3L, 9L, 9L, 9L,
6L, 6L, 7L, 10L, 7L, 9L, 10L, 4L, 9L, 6L, 8L, 8L, 9L, 8L,
8L, 3L, 8L, 1L, 4L, 6L, 1L, 8L, 8L, 8L, 8L, 8L, 8L, 2L, 8L,
8L, 3L, 8L, 8L, 8L, 8L, 8L, 3L, 8L, 8L, 8L, 2L, 8L, 7L, 3L,
3L, 3L, 3L, 9L, 9L, 9L, 9L, 2L, 6L, 6L, 4L, 6L, 6L, 9L, 9L,
6L, 8L, 6L, 6L, 6L, 9L, 9L, 6L, 6L, 9L, 9L, 9L, 9L, 9L, 6L,
9L, 9L, 9L, 9L, 9L, 8L, 8L, 9L, 9L, 7L, 9L, 9L, 6L, 5L, 9L,
9L, 6L, 9L, 8L, 4L, 9L, 9L, 6L, 12L, 9L, 9L, 9L, 4L, 6L,
6L, 9L, 9L, 6L, 6L, 6L, 9L, 6L, 6L, 9L, 9L, 9L, 1L), .Label = c("Adult Education",
"Junior Secondary", "Koranic", "NCE", "None", "Polytechnic",
"Senior Primary", "Senior Secondary", "University", "Junior Primary",
"Prelim / JMB", "Technical College"), class = "factor"),
district = c("Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Angwan Rimi", "Angwan Rimi", "Angwan Rimi", "Angwan Rimi",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa", "Barnawa",
"Barnawa", "Barnawa", "Barnawa", "Barnawa")), .Names = c("sex",
"education", "district"), row.names = c("1", "2", "3", "4", "5",
"6", "7", "9", "10", "11", "12", "13", "14", "15", "16", "17",
"19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
"30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40",
"41", "42", "43", "44", "46", "47", "48", "49", "50", "51", "52",
"53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63",
"64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74",
"75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85",
"86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96",
"97", "98", "99", "100", "101", "102", "103", "104", "105", "106",
"107", "108", "109", "110", "111", "113", "114", "115", "116",
"117", "118", "119", "120", "121", "122", "123", "124", "125",
"126", "127", "128", "129", "130", "131", "132", "133", "134",
"135", "136", "137", "138", "139", "1361", "1371", "1381", "1391",
"140", "141", "142", "143", "144", "145", "146", "147", "148",
"149", "150", "151", "152", "153", "154", "155", "156", "157",
"158", "159", "160", "161", "162", "163", "164", "165", "166",
"167", "168", "169", "170", "171", "172", "173", "174", "175",
"176", "177", "178", "179", "180", "181", "182", "183", "184",
"185", "186", "187", "188", "189", "190", "191", "192", "193",
"194", "195", "196", "197", "198", "199", "200", "201", "202",
"203", "204", "205", "206", "207", "208", "209", "210", "211",
"212", "213", "214", "215", "216", "217", "218", "219", "220",
"221", "222", "223", "224", "225", "226", "227", "228", "229",
"230", "231", "232", "233", "234", "235", "236", "237", "238",
"239", "240", "241", "242", "243", "244", "245", "246", "247",
"248", "249", "250", "251", "252", "253", "254", "255", "256",
"257", "258", "259", "260", "261", "262", "263", "264", "265",
"266", "267", "268", "269", "270", "271", "272", "273", "274",
"275", "276", "277", "278", "279", "280", "281", "282", "283",
"284", "285", "286", "287", "288", "289", "290", "291", "292",
"293", "294", "295", "296", "297", "298", "299", "300", "301",
"302", "303", "304", "305", "306", "307", "308", "309", "310",
"311", "312", "313", "314", "315", "316", "317", "318", "319",
"320", "321", "322", "323", "324", "325", "326", "327", "328",
"329", "330", "331"), class = "data.frame")

最佳答案

这是此问题的解决方法,因为直接在一个 ggplot2 中情节你不能结合躲避和堆叠。

对于这个图,我使用了数据框 all_data由@DrewSteen 回答 - 数据框应包含所有 District 的值水平。

这个想法是在 District 的 x 轴组合上绘图和 A8_HHH_hig .这是通过函数 interaction() 实现的内aes()称呼。然后将其转换为数字以确保稍后我们可以在我们想要的位置添加标签。对于 fill=我们再次使用组合 - 现在在 sex 之间和 District .要获取 x 轴的标签,请使用 scale_x_continuous()并将断点设置为 2,4,6,...,26(具有相同教育水平的两个条形之间的值,最大值计算为 A8_HHH_hig 的级别数 * Sex 的级别)并且作为标签提供 A8_HHH_hig 的级别.

ggplot(all_data,aes(as.numeric(interaction(District,A8_HHH_hig)),
fill=interaction(sex,District)))+
geom_bar(binwidth=1)+
theme(axis.text.x=element_text(angle=-45, hjust=0))+
scale_x_continuous("Education",breaks=seq(2,26,2),
labels=levels(all_data$A8_HHH_hig),expand=c(0,0.5),limits=c(1,27))+
scale_fill_discrete("",
labels=c("Female Angwan","Male Angwan","Female Barnawa","Male Barnawa"))

enter image description here

关于r - 来自 2 个单独数据框的 ggplot 堆积条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com