[ggplot] 산점도에 좌표 추가하기
좌표를 추가할 때는 geom_text 함수를 사용합니다. label 에 좌표 이름이 들어가게 되는데, 좌표 이름 열을 미리 생성해 놓아야 합니다. 위치는 hjust와 vjust 로 적당히 조절합니다. 크기는 size 옵션을 이용합니다. 예시는 아래와 같습니다. library(tidyverse) x1=c(1,1,2,2) y1=c(1,2,1,2) df=data.frame(x,y) df['label']=paste('(',df$x,',',df$y,')') ggplot(data=df,aes(x=x1,y=y1))+ geom_point()+ scale_x_continuous(limits = c(0,3))+ scale_y_continuous(limits = c(0,3))+ geom_text(aes(x=x1,label=..
2023. 1. 16.
[ggplot2] 선 그래프 여러개 겹쳐그릴 때 범례 순서 바꾸는 법
여러가지 자유도로 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') 문제는 범례가 알파벳과 숫자 순으로 정렬된다는..
2023. 1. 14.
[R ggplot] 범례 추가하고 이름,크기,색,진하기 조절하기
데이터는 내장데이터 iris 를 사용하였습니다. 설명은 주석으로 대신합니다. library(ggplot2) ggplot()+ geom_point(data=iris, aes(x=Sepal.Length,y=Sepal.Width,color=Species))+ #범례 추가 theme(legend.position = 'top')+ #범례 타이틀 색,크기,진하게 설정 theme(legend.title = element_text(color = "black", size = 20, face = "bold"))+ #범레 텍스트 색,크기,진하게 설정 theme(legend.text = element_text(color = "black", size = 12, face = "bold"))+ #범례 색 설정 scale_color..
2022. 6. 8.
[R ggplot] 상자수염그림 fill 순서 마음대로 정하기 (boxplot)
그룹형 상자수염그림에서 2차 독립변수의 순서를 정하는 방법입니다. 2차 독립변수를 factor 로 변환하고 level 을 설정해주면 됩니다. 사용할 데이터는 내장데이터 breaks 입니다. 상자수염을 그리면 아래와 같습니다. library(ggplot2) ggplot()+ geom_boxplot(data=warpbreaks,aes(x=wool,y=breaks,fill=tension)) L,M,H 순서로 그래프가 그려집니다. 순서를 H,M,L 로 바꿔봅시다. 아래와 같이 데이터를 변환해줍니다. #데이터 변환하기 my_data=warpbreaks my_data=transform( my_data, tension= factor(tension,levels = c('H','M','L')) ) 그래프를 그려봅시다. ..
2022. 5. 31.
[R ggplot2] 그래프 제목 추가, 크기변경, 두껍게 하는 법
그래프를 하나 그려봅시다. 정규분포 그래프를 그렸습니다. x1=seq(-4,4,0.1) y1=dnorm(x1) data1=data.frame(x1,y1) library(ggplot2) ggplot()+ geom_point(data=data1, aes(x=x1,y=y1)) 그래프 제목을 추가할 때는 ggtitle 함수를 사용합니다. x1=seq(-4,4,0.1) y1=dnorm(x1) data1=data.frame(x1,y1) library(ggplot2) ggplot()+ geom_point(data=data1, aes(x=x1,y=y1))+ ggtitle('Normal Distribution') 가운데 정렬, 크기,bold 는 아래와 같이 설정합니다. hjust=0.5 로 설정하면 가운데 정렬 됩니다...
2022. 5. 13.
[R ggplot2] 두 데이터를 하나의 산점도 그래프에 그릴 때 범례 및 색 설정
(x,y)로 대응되어 있는 데이터가 두 종류 있다고 합시다. data1=data.frame(x1=1:10,y1=dnorm(1:10)) data2=data.frame(x2=1:10,y2=dchisq(1:10,3)) 하나의 그래프에 두 데이터의 산점도를 그려봅시다. library(ggplot2) ggplot()+ geom_point(data=data1, aes(x=x1,y=y1))+ geom_point(data=data2, aes(x=x2,y=y2)) 범례를 설정해볼 것인데요. 여기서 많은 분들이 헷갈려하는 부분이 나옵니다. 아마 아래와 같이 색을 구분하려고 할 것입니다. ggplot()+ geom_point(data=data1, aes(x=x1,y=y1),color='red')+ geom_point(dat..
2022. 5. 13.
R 그래프 가로세로 비율(화면비율), 화면 크기 설정
화면 비율을 설정할 때는 asp 옵션을 사용합니다. asp 값은 가로:세로 비율입니다. asp가 2라면 y값이 x값보다 두배 확대됩니다. 같은 1이라도 y축방향이 두배 길어집니다. 아래는 asp를 1로 설정한 예제입니다. x=c(1,2) y=c(1,2) plot(x,y,type="h",col='red',xlim=c(0,4),ylim=c(0,4), lwd=2,asp=1) 그래프 크기가 1:1 비율이 되지는 않습니다. 축의 간격의 길이가 같아집니다. asp를 2로 바꿔봅시다. y축에 간격 5의 길이와 x축 간격 5의 길이를 비교해보면, y축이 두배 긴 것을 알 수 있습니다. asp를 2로 놓으면 y축의 간격 길이가 두배가 됩니다. 그래프 크기까지 원하는 비율로 하려면 dev.new 함수를 사용해야 합니다. ..
2022. 4. 2.