我想知道是否可以將分組的箱線圖繪制為帶有密度線的(較大的)直方圖中的插圖:
玩具資料:
df <- structure(list(role = c("Recipient", "Speaker", "Recipient",
"Recipient", "Recipient", "Speaker", "Recipient", "Recipient",
"Speaker", "Speaker", "Recipient", "Speaker", "Recipient", "Recipient",
"Recipient", "Speaker", "Recipient", "Speaker", "Recipient",
"Speaker", "Recipient", "Recipient", "Speaker", "Recipient",
"Recipient", "Speaker", "Speaker", "Speaker", "Recipient", "Speaker",
"Speaker", "Recipient", "Speaker", "Recipient", "Recipient",
"Speaker", "Recipient", "Recipient", "Recipient", "Speaker",
"Speaker", "Recipient", "Speaker", "Recipient", "Speaker", "Recipient",
"Speaker", "Speaker", "Recipient", "Recipient", "Speaker", "Recipient",
"Recipient", "Speaker", "Recipient", "Recipient", "Recipient",
"Speaker", "Recipient", "Speaker", "Recipient", "Speaker", "Recipient",
"Recipient", "Speaker", "Recipient", "Recipient", "Speaker",
"Recipient", "Recipient", "Recipient", "Speaker", "Recipient",
"Speaker", "Recipient", "Speaker", "Recipient", "Recipient",
"Recipient", "Recipient", "Speaker", "Recipient", "Recipient",
"Recipient", "Speaker", "Recipient", "Speaker", "Recipient",
"Recipient", "Speaker", "Recipient", "Recipient", "Speaker",
"Recipient", "Recipient", "Recipient", "Speaker", "Recipient",
"Speaker", "Recipient"), increase_max = c(0.008, 0.118, NA, NA,
NA, 0.209, NA, 0.001, 0.111, NA, NA, NA, NA, NA, 0.007, 0.002,
0.006, 0.255, 0.009, NA, 0.004, 0.232, NA, 0.007, 0.004, 0.095,
0.09, NA, 0.002, NA, 0.05, NA, 0.02, 0.045, 0.002, NA, NA, 0.005,
0.012, NA, 0.037, NA, 0.066, NA, 0.019, 0.002, 0.136, NA, 0.003,
NA, 0.128, 0.004, 0.003, NA, NA, NA, 0.03, 0.042, NA, 0.138,
0.139, 0.126, 0.002, NA, 0.005, NA, 0.002, 0.01, 0.001, NA, 0.005,
0.003, NA, NA, 0.002, NA, 0.005, NA, NA, 0.015, 0.007, 0.021,
NA, NA, NA, NA, NA, 0.171, 0.02, 0.036, 0.026, 0.001, 0.033,
0.127, 0.339, 0.075, 0.037, 0.083, NA, 0.041)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -100L))
我可以像這樣單獨繪制兩個圖形(注意:直方圖的資料根據??多個引數進行過濾,箱線圖的資料未過濾):
帶密度線的直方圖:
df %>%
filter(
!is.na(increase_max) &
increase_max >= 0.05 &
increase_max <= 0.5) %>%
ggplot(aes(x = increase_max))
geom_histogram(aes(y = after_stat(density), fill = role), binwidth = 0.05, position = "identity", alpha = 0.35)
geom_density(aes(colour = role))
scale_colour_manual(aesthetics = c("fill", "colour"), values = c("blue", "red")
)
箱形圖:
df %>%
ggplot(aes(y = increase_max, x = role))
geom_boxplot()
我正在尋找的輸出將與此類似:

uj5u.com熱心網友回復:
您可以使用cowplot輕松疊加和插入圖。隨著hp作為你的直方圖,并bp為您的盒形圖:
library(cowplot)
ggdraw()
draw_plot(hp)
draw_plot(bp, x = .5, y = .65, width = .35, height = .35)

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380653.html
