dme*_*meu 6 r lines ggplot2 boxplot
我有一个箱线图,想geom_hline
为每个箱线图单独添加简单的水平线。
我尝试过 R 中的箱线图示例。问题是:
感谢您提前提供的任何帮助。
### ADDING Lines
somelines <- data.frame(value=c(0.2,0.3,0.4,0.6,0.7),boxplot.nr=c(1,2,3,4,5))
abc <- adply(matrix(rnorm(100), ncol = 5), 2, quantile, c(0, .25, .5, .75, 1))
b <- ggplot(abc, aes(x = X1, ymin = `0%`, lower = `25%`, middle = `50%`, upper = `75%`, ymax = `100%`)) +
geom_hline(aes(yintercept= value),somelines)
b + geom_boxplot(stat = "identity")
b + geom_boxplot(stat = "identity") + coord_flip()
b + geom_boxplot(aes(fill = X1), stat = "identity")
Run Code Online (Sandbox Code Playgroud)
您可以使用geom_segment()
来添加这些行。用于boxplot.nr-0.5
行首、boxplot.nr+0.5
行尾以及value
y 和 Yend。还要inherit.aes=FALSE
在内部添加geom_segment()
以确保不会查找用于填充箱线图的geom_segment()
变量。X1
ggplot(abc, aes(x = X1, ymin = `0%`, lower = `25%`, middle = `50%`,
upper = `75%`, ymax = `100%`)) +
geom_boxplot(aes(fill = X1), stat = "identity")+
geom_segment(data=somelines,aes(x=boxplot.nr-0.5,xend=boxplot.nr+0.5,
y=value,yend=value),inherit.aes=FALSE,color="orange",size=1.5)
Run Code Online (Sandbox Code Playgroud)
第二次调用也可以获得相同的结果geom_boxplot()
- 因为 somelines 对象的每个级别中只有一个值,然后箱线图将显示为线条。
ggplot(abc, aes(x = X1, ymin = `0%`, lower = `25%`, middle = `50%`,
upper = `75%`, ymax = `100%`)) +
geom_boxplot(aes(fill = X1), stat = "identity")+
geom_boxplot(data=somelines,aes(factor(boxplot.nr),value),
inherit.aes=FALSE,color="orange",size=1.5)
Run Code Online (Sandbox Code Playgroud)