我正在尝试使用ggplot2
在一个地块中创建3个条形图。 3个条形图共享相同的x轴值,这就是我想要分组的方式,而不是像这样并排放置整个图:
由于我使用的数据帧相当大,我在下面提出了一个理想化的数据框:
> d1rm.null
Threat1_Cat Threat1 Threat2_Cat Threat2 Threat3_Cat Threat3
1 1 1.2 5 5.2 7 7.2
2 7 7.2 4 4.1 2 2.1
3 4 4.3 7 7.2 1 1.1
4 5 5.1 7 7.1 1 1.1
5 4 4.2 2 2.1 3 3.0
我用来创建脚本的脚本如下:
ggplot(data = d1rm.null, aes(x = Threat1_Cat, colour = Threat1)) +
geom_bar() +
labs(x = "Higher Threat Category", y="Frequency") +
ggtitle("Threat 1 Distribution Before Any Exclusions") +
guides(colour=guide_legend(title="Higher Resolution Threat Category"))
哪个有输出:
这与我的目标类似,我的目标是看起来像,但存在所有3种威胁。
谢谢!
答案 0 :(得分:2)
我试图重塑数据,但我找不到自动执行的操作,所以我“手动”完成了。必须有一个更好的解决方案。 无论如何,这是我的代码
T1 <- d1rm.null %>%
select(1:2) %>%
gather(Threat, Value, Threat1) %>%
rename(Cat = Threat1_Cat)
T2 <- d1rm.null %>%
select(3:4) %>%
gather(Threat, Value, Threat2) %>%
rename(Cat = Threat2_Cat)
T3 <- d1rm.null %>%
select(5:6) %>%
gather(Threat, Value, Threat3) %>%
rename(Cat = Threat3_Cat)
Total <- bind_rows(T1, T2, T3)
Total
# A tibble: 15 × 3
# Cat Threat Value
# <dbl> <chr> <dbl>
# 1 1 Threat1 1.2
# 2 7 Threat1 7.2
# 3 4 Threat1 4.3
# 4 5 Threat1 5.1
# 5 4 Threat1 4.2
# 6 5 Threat2 5.2
# 7 4 Threat2 4.1
# 8 7 Threat2 7.2
# 9 7 Threat2 7.1
# 10 2 Threat2 2.1
# 11 7 Threat3 7.2
# 12 2 Threat3 2.1
# 13 1 Threat3 1.1
# 14 1 Threat3 1.1
# 15 3 Threat3 3.0
然后是图表,如果我明白你想要什么。
ggplot(data = Total, aes(x = Cat, fill = Threat)) +
geom_bar(position = "dodge")