的documentation为条形图中ggplot2
说(见例3):当多个棒放置在同一位置依次层叠酒吧GGPLOT2 - 土壤剖面
条形图自动堆叠。填充顺序的设计与图例相匹配。
由于某种原因,第二句对我不起作用。下面是一个例子的数据集,其代表土层上述(落叶层等)和地下(实际土):
df <- structure(list(horizon = structure(c(5L, 3L, 4L, 2L, 1L, 5L,
3L, 4L, 2L, 1L, 5L, 3L, 4L, 2L, 1L, 5L, 3L, 4L, 2L, 1L, 5L, 3L,
4L, 2L, 1L, 5L, 3L, 4L, 2L, 1L), .Label = c("A", "B", "F", "H",
"L"), class = "factor"), site = structure(c(1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L), .Label = c("A", "B", "C",
"D", "E", "F"), class = "factor"), value = c(2.75, 0.5, 0.25,
-4.125, -3.375, 3.78125, 1.375, 0.625, -10.6875, -6.34375, 4.28,
2.065, 0.68, -12.1, -10.75, 8.583333333, 4.541666667, 2.166666667,
-10.70833333, -4.25, 7.35, 4, 1.8, -13.95, -5.175, 1.933333333,
1.245833333, 0.641666667, -11.16666667, -2.291666667)), .Names = c("horizon",
"site", "value"), class = "data.frame", row.names = c(NA, -30L
))
现在我尝试通过首先指定土壤层级别的顺序绘制数据(即视野,自上而下地):
require(ggplot2); require(dplyr)
df %>%
mutate(horizon = factor(horizon, levels = c("L","F","H","A","B"))) %>%
ggplot(aes(site, value)) + geom_col(aes(fill = horizon)) + labs(y = "Soil depth (cm)")
它为L
,F
,H
而不是A
,B
(以下GR即负值)。其原因可能不起作用的原因是,堆叠酒吧的排序从最大到最小为site
(分别为正值和负值),然后以上下方式堆叠。它是否正确?如果是这样的话,那么对于我的积极价值来说,这只是巧合,这个传说与我相信的堆叠酒吧相匹配。
我想要实现的是在图例中叠加条形图的顺序(从顶部到底部),因此在横截面视图中查看土壤剖面时,我不确定如何来解决这个问题。
我曾尝试改变总体排序行为,但它产生同样的情节如上:
df %>%
mutate(horizon = factor(horizon, levels = c("L","F","H","A","B"))) %>%
arrange(desc(value)) %>%
ggplot(aes(site, value)) + geom_col(aes(fill=horizon)) + labs(y = "Soil depth (cm)")
df %>%
mutate(horizon = factor(horizon, levels = c("L","F","H","A","B"))) %>%
arrange(value) %>%
ggplot(aes(site, value)) + geom_col(aes(fill=horizon)) + labs(y = "Soil depth (cm)")
我可能得正值和负值分别进行排序,即分别下降和上升,?
什么是预期Ø本安输出? 'factor'中的'levels'参数是否与预期的输出相匹配? –
@AdamQuek是的'factor'中的''参数'的水平应该与期望的输出相匹配。 – Stefan