我想在一組刻面網格箱線圖的每一行中添加一條唯一的水平線。
x<-c("species_X","species_X","species_X", "species_Y","species_Y",
"species_Y", "species_Z", "species_Z", "species_Z")
y<- c(1,2,3)
df<- data.frame(species= rep(x, 3),
effort= rep(y, 9),
value = rnorm(27, 3, 2))
ggplot(df, aes(x=value))
geom_boxplot()
facet_grid(species ~ effort, scales = "free_y")
coord_flip()
ylab("")
我想為每一行添加以下值的行:
add_lines<- c(4, 3, 4.7)
所以4對應于species_X,3對應于species_Y,4.7對應于species_Z。我已經能夠向所有箱線圖添加線,但只能以所有線具有相同值的方式,或者在每個箱線圖上顯示所有三行的方式,如下所示:
ggplot(df, aes(x=value))
geom_boxplot()
facet_grid(species ~ effort, scales = "free_y")
coord_flip()
ylab("")
geom_vline(xintercept = add_lines)
對此的任何幫助將不勝感激。
uj5u.com熱心網友回復:
只需在您的 x 截距中包含分面變數。作為一個小資料框最容易做到這一點
add_lines <- data.frame(y = rep(c(4, 3, 4.7), each = 3),
species = x,
effort = rep(y, 3))
ggplot(df, aes(value))
geom_boxplot()
facet_grid(species ~ effort, scales = "free_y")
coord_flip()
ylab("")
geom_vline(aes(xintercept = y), data = add_lines, color = "red")

uj5u.com熱心網友回復:
coord_flip干擾線的方向,但更改為geom_vline將修復它。將物種設定為
unique并保護資料框中行的數字。
library(tidyverse)
# data for lines
add_lines = data.frame(species = unique(df$species),
hline = c(4,3,4.7)
)
p <- ggplot(df, aes(x=value))
geom_boxplot()
facet_grid(species ~ effort, scales = "free_y")
coord_flip()
ylab("")
p
geom_vline(data = add_lines,
aes(xintercept = hline), color = "green")

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