반응형
여러가지 자유도로 t분포 그래프를 그려보았습니다. 하나의 그래프에 그래고 범례도 표시했습니다. 표준정규분포 그래프도 함께 그렸습니다.
library(tidyverse)
x1=seq(-4,4,0.1)
y1=dnorm(x1)
y2=dt(x1,5)
y3=dt(x1,15)
y4=dt(x1,30)
ggplot()+
geom_line(aes(x=x1,y=y1,color='normal'))+
geom_line(aes(x=x1,y=y2,color='t df=5'))+
geom_line(aes(x=x1,y=y3,color='t df=15'))+
geom_line(aes(x=x1,y=y4,color='t df=30'))+
theme(legend.position = 'top')
문제는 범례가 알파벳과 숫자 순으로 정렬된다는 것이었습니다. t5 t15 t30 순서대로 하고 싶었습니다. scale_fill_discrete 함수에서 break 옵션을 설정해주는 방법이 있었는데, 이걸 사용하려면 데이터프레임 형태로 독립/종속 변수화 시켜야 했습니다. 데이터를 그렇게 바꿔주었습니다.
library(tidyverse)
x1=seq(-4,4,0.1)
y1=dnorm(x1)
y2=dt(x1,5)
y3=dt(x1,15)
y4=dt(x1,30)
lab=c(rep('normal',length(x1)),
rep('t df=5',length(x1)),
rep('t df=15',length(x1)),
rep('t df=30',length(x1))
)
df=data.frame(lab,X=c(x1,x1,x1,x1),Y=c(y1,y2,y3,y4))
ggplot(df,aes(X,Y,color=lab))+
geom_line()+
scale_color_discrete(name='',breaks = c("normal", "t df=5", "t df=15", "t df=30"))
순서가 아래와 같이 바뀝니다.
반응형
'6. 데이터 시각화 - ggplot2 > 선그래프' 카테고리의 다른 글
[ggplot2] 카이제곱분포 그래프 그려보기 (+제목 크기 조절) (0) | 2023.01.15 |
---|---|
[R ggplot2] 정규분포와 t분포 그래프 그리기 (0) | 2023.01.14 |
[R ggplot2] 선 그래프 그리는 방법 (0) | 2022.05.13 |
댓글