본문 바로가기
반응형

R76

[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.
[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] 그룹형 상자수염그림 (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] 산점도 범례 생성 시 산점도 색 마음대로 설정하기 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 그래프 가로세로 비율(화면비율), 화면 크기 설정 화면 비율을 설정할 때는 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.
[R 그래프] 여러 집단의 전후변화 비교 막대그래프 library(lsr) #데이터 dt1=c(1,2,3,4,5,6,7,8,9,10) dt2=c(1,2,3,4,5,6,7,8,9,100) #통계량계산(중앙값절대편차, 평균절대편차, 표준편차) dt_dev=c(mad(dt1),mad(dt2),aad(dt1),aad(dt2),sd(dt1),sd(dt2)) names(dt_dev)=rep(c("dt1","dt2"),3) #벡터 원소이름지정 barplot(dt_dev,beside=TRUE,col=c("red","red","blue","blue","green","green")) legend("topleft",legend=c("MAD","AAD","SD"),fill=c("red","blue","green"),border="white",cex=1.2) 2021. 10. 19.
R그래프 축 눈금 원하는 간격으로 설정하기 코드는 아래와 같습니다. 설명은 주석으로 대신합니다. #데이터 x=c(1,2,3,4,5) y=c(1,2,3,4,5) # axes FALSE로 설정하여 축 눈금과 값 안나오게함 plot(x,y,xaxt="n",yaxt="n",xlim=c(0,10),ylim=c(0,10)) #간격 설정 xat=seq(0,10,by=0.5) yat=seq(0,10,by=2) #위에서 설정한 간격 이용하여 눈금 그리기 axis(side=1,at=xat) axis(side=2,at=yat) 2021. 3. 15.
R 그래프 화면 분할 (화면의 일부분에 그래프 그리기) par 함수의 fig 값 입력하면 됩니다. 형식은 아래와 같습니다. par(fig=c(x1, x2, y1, y2)) 몇가지 입력 예시를 통해 이해해봅시다. (0,1,0,1) 화면 전체 사용 par(fig=c(0,1,0,1)) plot(1:10) box(col="red") box("figure", col="green") box("outer", col="blue") (0,0.5,0,1) 가로 50%, 세로 100% 사용 par(fig=c(0,0.5,0,1)) plot(1:10) box(col="red") box("figure", col="green") box("outer", col="blue") (0.2,0.5,0,1) 가로 20%지점부터 30%만큼 사용, 세로 100% 사용 par(fig=c(0.2,0.5.. 2021. 1. 30.
[R시각화] 점의 밀도를 시각화해주는 smoothScatter 함수 smoothScatter 함수는 점의 밀도를 시각화해줍니다. 점이 많이 모여있는 곳은 진한 색으로, 그렇지 않은 곳은 흐린 색으로 시각화합니다. 산점도 그래프 plot 처럼, 점 데이터를 입력해주면 됩니다. 예를 들어봅시다. 옵션을 적용한 경우도 출력하였습니다. par(mfrow=c(2,2)) par(mar=c(2,2,2,2)) #산점도 plot(iris$Sepal.Length) #밀도그래프, 옵션 미적용 smoothScatter(iris$Sepal.Length) #nrpoint 옵션 적용. 출력될 점의 수, 낮은 밀도부터 출력 smoothScatter(iris$Sepal.Length,nrpoint=0) #색 설정, colorRampPalette 사용해야함. mypltt 2020. 12. 31.
[R시각화] 노이즈를 발생시키는 jitter함수 jitter 함수는 입력 값에서 노이즈를 발생시킵니다. 아래는 간단한 예시입니다. factor 옵션을 이용하여 강도를 조절할 수도 있습니다. > x=1:5 > jitter(x) [1] 1.1837416601367294 [2] 1.8277301006950437 [3] 3.0211889690719547 [4] 4.0621753104031084 [5] 5.0300368266180158 그래프를 이용하여 jitter 함수 적용 전후를 비교해봅시다. par(mfrow=c(1,2)) x=seq(0,10,len=30) y=rep(1,length(x)) plot(x,y) plot(x,jitter(y)) 이번에는 옵션인 factor를 변경하고 비교해봅시다. 디폴트 값은 1입니다. x=seq(0,10,len=30) y=r.. 2020. 12. 30.
[R시각화] 사각형을 입력하는 rect 함수 rect 함수는 그래프에 사각형을 추가합니다. 아래와 같은 형식으로 사용합니다. rect(xleft, ybottom, xright, ytop) 네개의 직선을 긋고 만들어지는 사각형이라고 생각하면 됩니다. xleft는 왼쪽 세로선, ybottom은 아래 가로선, xright은 오른쪽 세로선, ytop은 위 가로선입니다. 아래는 예시입니다. plot(0,xlim=c(0,10),ylim=c(0,10),type="n") rect(3,5,1,2) 옵션 기능 density = NULL 빗금으로 채우기 angle = 45 빗금 각도 col = NA 채우기 색 border = NULL 테두리색 lty = par("lty") 선 스타일 0 : blank 1 : solid 2 : dashed 3 : dotted 4 : d.. 2020. 12. 30.
[R시각화] 데이터의 위치를 눈금으로 표시 rug 함수를 이용하면 데이터의 위치를 눈금으로 표시해줍니다. 점들을 부드러운 곡선으로 연결한 경우, rug 함수를 적용하면 어느 영역에 데이터가 몰려 있는지를 한눈에 알 수 있습니다. > x=c(1,2,3,4,10,11,12,20,21,22) > y=1:10 > plot(x,y,type='l') > rug(x) 2020. 12. 30.
[R시각화] 마진(margin)에 텍스트 추가해주는 mtext함수 먼저 마진이 어딘지를 확인해봅시다. par(mar=c(5,5,5,5),oma=c(3,3,3,3)) plot(0,xlim=c(0,10),ylim=c(0,10),type="n") box(col="red") box("figure", col="green") box("outer", col="blue") 두개의 마진이 있습니다. 파란상자와 초록상자 사이 공간이 내부마진이고, 초록상자와 파란상자 사이 공간이 외부마진입니다. 내부마진을 그냥 '마진'이라고 부르기도 합니다. 마진에 글을 추가할 때는 mtext 함수를 사용합니다. 아래와 같은 형식으로 입력합니다. mtext(text, side = 3, line = 0, outer = FALSE, at = NA, adj = NA, padj = NA, cex = NA, co.. 2020. 12. 30.
[R시각화] 현재 그래프의 여백(margin)을 눈으로 확인 방법 그래프가 그려진 상태에서 아래 코드를 입력하면 됩니다. box(col="red") box("figure", col="green") box("outer", col="blue") 각각 어떤 의미인지는 아래 그래프를 보시면 알 수 있습니다. par(mar=c(2,2,2,2),oma=c(2,2,2,2)) plot(0,xlim=c(0,10),ylim=c(0,10),type="n") box(col="red") box("figure", col="green") box("outer", col="blue") 2020. 12. 30.
[R시각화] 그래프에 점을 추가하는 points 함수 points 함수는 그래프에 점을 추가하는 함수입니다. 단독으로 사용할 수는 없고, 그려진 그래프가 있어야 합니다. 아래와 같은 형식으로 사용합니다. points(x좌표들, y좌표들) 아래는 예시입니다. > plot(0,xlim=c(0,10),ylim=c(0,10),type="n") > points(c(1,4,6),c(2,6,8)) 점에 적용하는 옵션은 아래와 같습니다. 옵션 설명 pch 점의 형태 (0~25 사이 숫자) 21~25 는 테두리와 내부 색 따로 설정 가능 cex=1 점의 크기 col 점 테두리 색 bg 점 채우기 색 옵션을 적용해봅시다. > plot(0,xlim=c(0,10),ylim=c(0,10),type="n") > points(c(1,4,6),c(2,6,8),pch=7,cex=2,co.. 2020. 12. 30.
반응형