Programming/R

[ggplot2] 그림에 p-value 기울임체(이텔릭체) 표시하기

김해김씨99대손 2023. 10. 5. 10:42

 

 

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://stackoverflow.com/questions/73687311/r-stat-compare-means-3-decimals-and-p-0-001-and-p-in-italics

 

https://github.com/const-ae/ggsignif/issues/64

 

https://bio-kcs.tistory.com/entry/%EC%8A%A4%ED%81%AC%EB%9E%A9-ggplot-%EC%95%88%EC%97%90%EC%84%9C-%EA%B8%80%EC%9E%90-%EA%B8%B0%EC%9A%B8%EA%B8%B0-%EA%B5%B5%EC%9D%80-%EA%B8%80%EC%94%A8-%EB%B0%91%EC%A4%84-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

 

https://bio-kcs.tistory.com/entry/R-ggplot%EC%97%90-dodge%EC%9D%B4%EC%9A%A9%EC%8B%9C-p-value%EA%B0%92-%EB%84%A3%EB%8A%94-%EB%B0%A9%EB%B2%95

반응형