ggplot2에서 boxplot에 다중 비교 결과를 기입합니다
하고 싶은 거.
나는 이런 boxplot을 하고 싶다.
box에 적힌 자모는 다중 비교 검정의 결과를 나타낸다.
다중 비교 검정 결과...?
예를 들어 5개 그룹(Group 1~5)이 있을 때 ANOVA를 실행한 후 각 그룹 간의 의도적인 차이를 보면
그룹1과 그룹2, 그룹2와 4는 각각 현저한 차이가 없다.
그때는 다음과 같이 써야 한다.
Group1 a
Group2 ab
Group3 c
Group4 b
Group5 d
자세한 내용은 아래 사이트를 참조하십시오.
표에 다중 비교 결과만 기록하면 그 abc...의 분배 방법 |매일 독상-매일 헛수고.
abc 동작이 힘들어요...
규칙만 알면 abc를 움직여서 plot에 적당히 쓰면 되지 않을까요?
확실히 위 사이트처럼 작업을 하면 수동으로 이동할 수 있지만 수량이 늘어나면 작업량도 늘어나 머리가 혼란스러워진다.
아, 그게, A와 B는 의미가 있는 거니까 C와... E는 의미가 있는 거잖아...
이 일은 다중 비교 심의의 결과를 보고 진행해야 한다.
이루고 싶은 일.
그래서 이번
코드를 쓰다
R을 사용한 multipp 패키지
이 포장으로 위의 대응을 간단하게 할 수 있습니다.
검정은 TukeyHSD를 사용했고 이번에는 아이리스의 데이터 집합을 예로 들어 실천했다.
res
를 glht
에 전달cld()
에 던진 결과를 mltv
에 저장합니다.library(multcomp)
res =aov(Sepal.Length ~ Species, data=iris)
summary(res)
tuk = glht(res,linfct=mcp(Species="Tukey"))
mltv = cld(tuk,decreasing=F)
res =aov(Sepal.Length ~ Species, data=iris)
> summary(res)
Df Sum Sq Mean Sq F value Pr(>F)
Species 2 63.21 31.606 119.3 <2e-16 ***
Residuals 147 38.96 0.265
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> tuk = glht(res,linfct=mcp(Species="Tukey"))
> mltv = cld(tuk,decreasing=F)
> mltv
setosa versicolor virginica
"a" "b" "c"
이번엔 모두 현저한 차이가 있어서 영락없는 알파벳을 차였는데 심심하네일단 Tukey를 걸어서 확인을 해볼게요.
더 재미있는 데이터로 할게요.
stat_summary () 를 사용하여 boxplot에 반영
여기에서 얻은 결과를 boxplot에 간단하게 놓으려면 gplot 구성원의
stat_summary
함수를 사용하는 것이 가장 좋다.stat_summary
오류란과 모조에 좋은 느낌을 줄 수 있다.테스트
임의의 문자열을 매개변수
stat_summary
로 지정합니다.TukeyHSD(res)
지정
geom = 'text'
을 통해 박스의 위쪽에 표시할 수 있습니다.stat_summary의 행동이 확인되었으니 비교 심의 결과를 당신에게 드리겠습니다.
R스튜디오의 View()를 사용하여 간단하게 저장 위치 지정
방금
fun.y = max
는 데이터 집합으로 대상의 벡터를 잘 추출해야 한다.R스튜디오의 View를 사용하면 데이터 구조를 쉽게 파악할 수 있습니다.
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Sepal.Length ~ Species, data = iris)
$Species
diff lwr upr p adj
versicolor-setosa 0.930 0.6862273 1.1737727 0
virginica-setosa 1.582 1.3382273 1.8257727 0
virginica-versicolor 0.652 0.4082273 0.8957727 0
표시된 곳에서 원하는 데이터를 확인할 수 있습니다.
커서를 정확하게 맞추고 팝업을 누르면 코드 안에 사용할 수 있는 형식으로 주소를 삽입합니다.
오른쪽에 얇은 버튼이 하나 있다.
이런 식으로 복제해.
annos = c('A','B','C')
plot1 =
ggplot(data = iris, aes(x = Species, y = Sepal.Length,color = Species))+
geom_boxplot()+
stat_summary(geom = 'text', label =annos, fun.y = max, vjust = -1)+
theme_classic()
print(plot1)
내용은 라벨이 있는 벡터이기 때문에 직접statsummary에게 맡길 수 있습니다.완성
View(mltv)
그게 다야.
Reference
이 문제에 관하여(ggplot2에서 boxplot에 다중 비교 결과를 기입합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nifchi/articles/cf832779faf5d9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)