【发布时间】:2020-10-06 05:08:46
【问题描述】:
我有一个包含四个变量的数据集,用于衡量受访者对不同主题的看法。我想将它们绘制成一个堆积条形图,以便您可以比较不同主题之间的值。
这是数据集的第一行:
lebanon <- structure(list(climate_change = c(
"Not a very serious problem",
"Not a very serious problem", NA, NA, "A very serious problem",
"A somewhat serious problem"
), air_quality = c(
"A somewhat serious problem",
"Not a very serious problem", NA, NA, "A very serious problem",
"A very serious problem"
), water_polution = c(
"A somewhat serious problem",
"Not a very serious problem", NA, NA, "A very serious problem",
"Not at all a serious problem"
), trash = c(
"A very serious problem",
"Not a very serious problem", NA, NA, "A very serious problem",
"A somewhat serious problem"
)), row.names = c(NA, -6L), class = "data.frame")
我确实尝试过基于this site 的以下代码:
lebanon %>%
filter(!is.na(climate_change), !is.na(air_quality), !is.na(water_polution), !is.na(trash)) %>%
gather(variable, value, climate_change:trash) %>%
ggplot(aes(x = variable, y = value, fill = value)) +
geom_bar(stat = "identity") +
coord_flip()
得到这张图:
此图存在三个问题。
1.) 条形图的长度不同。
2.) 我不明白为什么在 x 轴碰到 y 轴的位置写了一些东西。如何删除它?
3.) 我想对这些值进行排序,以便它们有意义,所以我先对它们进行排序:
dataset$climate_change <- factor(dataset$climate_change, levels = c("Not at all a serious problem",
"Not a very serious problem",
"A somewhat serious problem",
"A very serious problem"))
dataset$air_quality <- factor(dataset$air_quality, levels = c("Not at all a serious problem",
"Not a very serious problem",
"A somewhat serious problem",
"A very serious problem"))
dataset$water_polution <- factor(dataset$water_polution, levels = c("Not at all a serious problem",
"Not a very serious problem",
"A somewhat serious problem",
"A very serious problem"))
然而这些值仍然是无序的。我究竟做错了什么?或者有没有更有效的方法来制作多重堆叠条形图?
【问题讨论】: