的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