p-value값을 ggplot에 수동으로 첨부하기 위한 코드는 아래와 같다.
library(reshape2)
library(ggplot2)
library(ggsignif)
options(scipen = 999) # 10e-3 같은 지수 표시를 없앰
# 1. 데이터 추출
data(iris)
setosa <- iris[iris$Species == "setosa", c("Sepal.Length", "Sepal.Width") ]
setosa.melt <- melt(setosa)
# 2. 통계 테스트 (t-test)
t.t <- t.test(setosa$Sepal.Length, setosa$Sepal.Width)
t.t$p.value
# 3. p-value값 annotation준비
(df <- tibble::tribble(
~x, ~lab,
1, "p < 0.001",
2, paste("list(~italic(p)-value<", "0.001",")", sep = "")
))
# 4. ggplot그리기
p <- ggplot(setosa.melt, aes(x = variable , y = value)) +
geom_boxplot()+
theme_test()+
theme(legend.position="none") +
ylim(0, 8)
p
p + geom_signif( y_position = 7, xmin = 1, xmax = 2, tip_length = 0,
annotation = df$lab[2], textsize = 5,
parse=TRUE) # 문법 적용, FALSE 면 적용안됨
참고
https://github.com/const-ae/ggsignif/issues/64
반응형