我有一些動態測量的資料。
datadim=structure(list(group = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), dim1 = c(60L, 69L, 60L,
63L, 61L, 68L, 68L, 69L, 66L, 60L, 69L, 62L, 60L, 60L, 70L, 67L,
68L, 70L, 66L), dim2 = c(70L, 61L, 61L, 66L, 65L, 69L, 70L, 70L,
66L, 69L, 61L, 66L, 66L, 65L, 62L, 68L, 61L, 63L, 61L), dim3 = c(63L,
62L, 66L, 62L, 69L, 60L, 62L, 68L, 64L, 61L, 68L, 63L, 65L, 63L,
64L, 62L, 69L, 62L, 63L), dim4 = c(68L, 69L, 67L, 63L, 64L, 65L,
70L, 70L, 62L, 64L, 61L, 69L, 66L, 61L, 68L, 66L, 66L, 67L, 64L
)), class = "data.frame", row.names = c(NA, -19L))
我想為此創建箱線圖,用線來比較我的焦點組(group列)的中位數。我只是使用簡單boxplot(datadim)但我沒有得到需要的線路。我就是這樣。

我不想要這樣的情節。我需要像我在油漆
中創建的圖,
其中藍色是第一組,紅色是第二組。我還簽署了顯示描述性統計資料的位置(95% 置信區間、最大值、最小值、中值)。在每組內部,例如第一組,我們看到一條穿過每個維度的中值的藍線,同樣,在第二組內部,紅線穿過每個維度的中值。但boxplot不創造它。如何使用boxplot或ggplot2獲取像我在第二張圖片中提供的圖,其中每個組分別有一條中位數線(藍線和紅線)?
uj5u.com熱心網友回復:
您可以stat_summary在ggplot. 為此,您首先需要將資料轉換為長格式(此處使用tidyr::pivot_longer()并將組轉換為因子:
library(tidyr)
datadim.lng <- datadim %>% pivot_longer(-group,names_to="dim", values_to = "value")
datadim.lng$group <- as.factor(datadim.lng$group)
然后運行ggplot代碼:
ggplot(datadim.lng, aes(x = dim, y = value, fill = group))
geom_boxplot(position = position_dodge(width = 0.85), width = 0.8)
theme_classic()
stat_summary(
fun = median,
geom = 'line',
aes(group = group, color = group),
position = position_dodge(width = 0.85)
)
這使:

如果您想更改線條的顏色,請按照您的示例:
ggplot(datadim.lng, aes(x = dim, y = value, fill = group))
geom_boxplot(position = position_dodge(width = 0.85), width = 0.8)
theme_classic()
stat_summary(
fun = median,
geom = 'line',
aes(group = group, color = group),
position = position_dodge(width = 0.85)
)
scale_color_manual(values = c("red", "blue"))
這使:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/406999.html
標籤:
下一篇:桑基圖時間
