본문 바로가기
반응형

전체 글131

[ggplot2] x축과 y축 제목,눈금,라벨 제거 1. 축 제목 제거 x축 제목 제거 +theme(axis.title.x = element_blank()) y축 제목 제거 +theme(axis.title.y = element_blank()) 2. 축 눈금 제거 x축 눈금 제거 +theme(axis.ticks.x=element_blank()) y축 눈금 제거 +theme(axis.ticks.y=element_blank()) 3. 축 눈금 라벨 제거 x축 눈금 라벨 제거 +theme(axis.text.x=element_blank()) y축 눈금 라벨 제거 +theme(axis.text.x=element_blank()) 2023. 4. 6.
[ggplot2] x,y 변수명 문자로 입력하는 법 aes 대신 aes_string 을 사용하면 됩니다. 데이터프레임이 md 이고, 변수가 group, var 이라면 아래와 같이 입력합니다. ggplot(data=md,aes_string(x="group",y="var")) 2023. 1. 18.
[ggplot2] 화면분할하는 방법 tidyverse 외에 gridExtra 라는 패키지가 필요합니다. 패키지를 설치합니다. intall.packages('tidyverse') intall.packages('gridExtra') 패키지를 불러옵니다. library(tidyverse) library(ggplot2) 화면분할은 grid.arrange 라는 함수를 사용합니다. 각 그래프를 변수에 입력한 뒤, 변수를 grid.arrange 함수에 넣어줍니다. ncol, nrow 옵션을 이용해서 화면을 어떻게 분할할지 결정합니다. 예시는 아래와 같습니다. library(tidyverse) library(gridExtra) #데이터프레임 생성 x1=c(1,1,2,2) y1=c(1,2,1,2) df=data.frame(x1,y1) #각 그래프를 변수에.. 2023. 1. 18.
[ggplot2] 화면 분할 그래프 for문 이용해서 그리기 ggplot2 와 gridExtra 패키지가 사용됩니다. 설치가 안되신 분들은 먼저 설치해주셔야 합니다. 화면 분할하는 방법을 먼저 읽고 오셔야 이해가 쉽습니다. [ggplot2] 화면분할하는 방법 (tistory.com) 화면 분할 그래프를 for문을 이용해서 그려봅시다. 원리는 간단합니다. 리스트를 생성한 뒤, for문을 이용하여 ggplot 그래프를 list 의 각 원소에 입력합니다. do.call 함수로 grid.arrange 함수를 리스트의 모든 원소에 적용해줍니다. grid.arrange 함수는 ggplot 그래프를 변수로 입력받아 화면을 분할하여 그래프를 그려주는 함수입니다. 예시는 아래와 같습니다. 설명은 주석으로 대신합니다. library(gridExtra) library(ggplot2).. 2023. 1. 18.
[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] 카이제곱분포 그래프 그려보기 (+제목 크기 조절) 카이제곱 분포 그래프를 그려보았습니다. 타이틀을 가운데정렬하고, 크기도 조절하였습니다. library(tidyverse) x=seq(0,4,0.01) y=dchisq(x,1) df=data.frame(x,y) ggplot(df,aes(x,y))+ geom_line()+ ggtitle("1 dof chisq")+ theme(plot.title = element_text(hjust = 0.5))+ theme(plot.title = element_text(size = 20, face = "bold")) 2023. 1. 15.
[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 ggplot2] 정규분포와 t분포 그래프 그리기 R의 ggplot2 패키지로 정규분포와 t분포를 그려보았습니다. library(tidyverse) x1=seq(-4,4,0.1) y1=dnorm(x1) y2=dt(x1,5)\ ggplot()+ geom_line(aes(x=x1,y=y1,color='normal'))+ geom_line(aes(x=x1,y=y2,color='t'))+ theme(legend.position = 'top')+ scale_color_manual(values=c('red','blue')) 정규분포를 빨간색으로, t분포를 파란색으로 그렸습니다. t분포의 자유도는 5로 두었습니다. 그래프는 아래와 같습니다. 2023. 1. 14.
[R시각화] 눈금 라벨을 위아래로 움직이는 방법 (tick label move) 그래프를 그리기 전에 아래 코드를 입력합니다. par(mgp=c(3, 1.8, 0)) 두번째 값을 바꾸면 눈금이 위아래로 이동합니다. 2022. 9. 15.
[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 ggplot] 그룹형 상자수염그림 (boxplot) 데이터는 R의 내장데이터인 warpbreaks 를 사용하였습니다. 아래와 같습니다. > head(warpbreaks) breaks wool tension 1 26 A L 2 30 A L 3 54 A L 4 25 A L 5 70 A L 6 52 A L wool 은 실의 종류, tension 은 실의 장력, breaks 는 실의 끊김 횟수입니다. 독립변수 1을 실의 종류, 독립변수 2를 장력, 종속변수를 실의 끊김횟수로 하여 상자수염그림을 그려봅시다. library(ggplot2) ggplot()+ geom_boxplot(data=warpbreaks,aes(x=wool,y=breaks,fill=tension)) 2022. 5. 31.
[R ggplot2] 축 눈금 레이블 크기, bold 설정 (x축, y축) x축 기준으로 설명하겠습니다. 축 눈금 레이블의 크기, bold를 설정할 때는 theme 함수 안에 axis.text.x 옵션을 사용합니다. 아래와 같이 사용합니다. ggplot()+ geom_boxplot(data=iris, aes(x=Species,y=Sepal.Length))+ theme(axis.text.x = element_text(size=20,face='bold')) 2022. 5. 31.
[R ggplot2] 축 제목, 크기, bold 설정 (x축, y축) x축 기준으로 설명하겠습니다. 축 제목을 설정할 때는 xlab 함수를 사용합니다. 축 제목 크기와 bold 등을 설정할 때는 theme 함수 안에 axis.title.x 옵션을 사용합니다. 아래와 같이 사용합니다. ggplot()+ geom_boxplot(data=iris, aes(x=Species,y=Sepal.Length))+ xlab("종") + #x축 이름 theme(axis.title.x = element_text(size=20,face='bold')) #축 제목 크기, bold 설정 2022. 5. 31.
[R ggplot2] 막대그래프 기본형 그리기 사용할 데이터는 mtcars 라는 내장데이터입니다. 아래와 같습니다. > head(mtcars) mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225 105 2.76 3.46.. 2022. 5. 31.
[R ggplot2] x축 라벨 각도 회전하기 x축 라벨 각도를 회전할 때는 theme 함수를 사용합니다. 아래와 같이 입력해줍니다. theme(axis.text.x=element_text(angle=90, hjust=1)) angle 에 원하는 각도를 넣으면 됩니다. 아래는 예시입니다. library(ggplot2) ggplot()+ geom_bar(data=mtcars,aes(x=row.names(mtcars),y=hp),stat='identity')+ theme(axis.text.x=element_text(angle=90, hjust=1)) 2022. 5. 31.
[R ggplot2] boxplot 순서 마음대로 설정하기 boxplot 순서를 마음대로 정할 때는 scale_x_discrete 함수를 사용합니다. 아래는 예시입니다. ggplot()+ geom_boxplot(data=iris, aes(x=Species,y=Sepal.Length))+ scale_x_discrete(limits=c("versicolor", "setosa","virginica")) 2022. 5. 30.
[R ggplot2] x축 범위, y축 범위 설정 방법 x축 범위 설정에는 scale_x_continuous 함수를, y축 범위 설정에는 scale_x_continuous 함수를 사용합니다. 예시는 아래와 같습니다. ggplot()+ geom_point(data=iris, aes(x=Sepal.Length,y=Sepal.Width))+ scale_x_continuous(limits = c(0, 100))+ scale_y_continuous(limits = c(0, 100)) 2022. 5. 30.
[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 ggplot2] 산점도 범례 생성 시 산점도 색 마음대로 설정하기 R 내장 데이터인 iris 데이터를 이용하겠습니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa 1. 색을 자동으로 구분하여 범례 생성 x값은 Sepal.Length 로 설정하고 y값은 Sepal.Width 로 설정하였습니다. 가장 기본적인 형태의 그래프를 그리고 범례를 설정합시다. 색은 Species 별로 구별되도록 했습니다. aes 안에 입력되는 color.. 2022. 5. 13.
[R ggplot2] 선 그래프 그리는 방법 R 내장데이터인 iris 데이터로 선 그래프를 그리겠습니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa ggplot2 패키지를 불러옵니다. ggplot 함수를 이용하여 x,y 데이터를 입력합니다. data 옵션에 데이터 프레임 형태의 데이터를 입력하고, aes 옵션의 x와 y값에 열 이름을 입력합니다. geom_line() 함수를 입력하면 그래프가 그려집니다.. 2022. 5. 13.
[R ggplot2] 산점도 그래프 그리는 방법 R 내장데이터인 iris 데이터로 산점도 그래프를 그리겠습니다. > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa ggplot2 패키지를 불러옵니다. ggplot 함수를 이용하여 x,y 데이터를 입력합니다. data 옵션에 데이터 프레임 형태의 데이터를 입력하고, aes 옵션의 x와 y값에 열 이름을 입력합니다. geom_point() 함수를 입력하면 그래프가 그려.. 2022. 5. 13.
[R ggplot2] 히스토그램과 선그래프 겹쳐그리기 히스토그램과 선 그래프를 겹쳐그리는 방법입니다. ggplot 을 생성하고, geom_histrogrm 으로 히스토그램을 그립니다. 이어서 geom_line 으로 선 그래프를 그려줍니다. 아래는 코드입니다. 주석에 설명을 적어놓았습니다. library(ggplot2) #1. 데이터 생성 df1=as.data.frame(islands) #히스토그램데이터 df2=data.frame(x2=0:15000,y2=dnorm(0:15000,mean=5000,sd=200)) #선그래프 데이터 #2. 그래프 그리기 ggplot(df1,aes(x=islands))+ geom_histogram(aes(y=..density..))+ #히스토그램 geom_line(data=df2,aes(x=x2,y=y2),color='red').. 2022. 5. 12.
[R ggplot2] 히스토그램 y축을 density로 (확률밀도함수) geom_histogram 함수 안에 geom_histogram( aes(y=..density..) ) 라고 입력하면 됩니다. density 옵션은 전체 넓이가 1이 되도록 만든 것입니다. 확률 밀도함수가 됩니다. 아래는 예시입니다. 히스토그램을 그리기 위해 islands 내장데이터를 데이터프레임 형태로 저장합니다. df=as.data.frame(islands) > head(df) islands Africa 11506 Antarctica 5500 Asia 16988 Australia 2968 Axel Heiberg 16 Baffin 184 ggplot2 로 그래프를 그려줍니다. library(ggplot2) ggplot(df,aes(x=islands))+geom_histogram()+ ggtitle("i.. 2022. 5. 12.
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.
[R ggplot2] 상자수염그림(boxplot) 그리는 방법 ggplot2 패키지를 이용하여 상자수염그림을 그려봅시다. 패키지가 설치되지 않은 분들은 패키지를 먼저 설치합시다. R콘솔창에 아래와 같이 입력합니다. install.packages("ggplot2") 데이터는 내장데이터인 InsectSprays 를 사용하겠습니다. 살충제를 뿌린 뒤, 단위 면적 당 남아있는 곤충의 수 입니다. 살충제의 종류는 A,B,C,D 네가지입니다. 데이터를 변수 df에 저장합시다. > df=InsectSprays > head(df) count spray 1 10 A 2 7 A 3 20 A 4 14 A 5 14 A 6 12 A ggplot2 를 불러오고 그래프를 그려줍니다. ggplot(df,aes(x=spray,y=count))+geom_boxplot()+ ggtitle("spra.. 2022. 3. 27.
[R ggplot2] 히스토그램 그리는 방법 ggplot2 패키지를 이용하여 히스토그램을 그려봅시다. 패키지가 설치되지 않은 분들은 패키지를 먼저 설치합시다. R콘솔창에 아래와 같이 입력합니다. install.packages("ggplot2") 데이터는 내장데이터인 islands 를 사용하겠습니다. 국가 별 섬의 개수 데이터입니다. 먼저 데이터를 데이터프레임 형태로 바꿔줍시다. ggplot2 입력 형식이 데이터프레임이기 때문에 바꿔주는 것입니다. df=as.data.frame(islands) > head(df) islands Africa 11506 Antarctica 5500 Asia 16988 Australia 2968 Axel Heiberg 16 Baffin 184 ggplot2 를 불러오고 그래프를 그려줍니다. library(ggplot2) .. 2022. 3. 27.
[R] x축 눈금 값을 원하는 값으로 바꾸기 아래와 같이 하면 됩니다. #눈금 값 없이 그래프 만들기 plot(1:10, xaxt = "n") #축에 원하는 이름 추가하기 axis(1, at=1:10, labels=letters[1:10]) 2022. 2. 7.
[R] 그래프 그림파일로 저장하기 R에서 그래프를 그림파일로 저장하는 방법은 두가지가 있습니다. - GUI 이용 - 코드이용 1. GUI 이용 아래 그림과 같이 Export 버튼을 클릭하고, Save as image 를 클릭하여 저장하면 됩니다. 2. 코드이용 먼저 그림을 저장하고 싶은 파일로 경로를 지정합니다. setwd("C:/Users/Public") png 형식으로 저장하길 원하는 경우 아래 코드를 사용합니다. 그래프를 그리기 전에 먼저 png 함수를 사용해주어야 합니다. width, height 등을 설정할 수 있습니다 . png(filename="myplot.png",width=300,height=600,unit="px",bg="transparent") set.seed(1) data=rnorm(100,170,5) hist(da.. 2021. 10. 26.
반응형