본문 바로가기
반응형

시각화11

[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.
[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시각화] 점의 밀도를 시각화해주는 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시각화] 사각형을 입력하는 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시각화] 마진(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시각화] 선을 그려주는 lines 함수 line 함수는 그래프에 선을 추가해야 하는 경우에 사용하는 함수입니다. 단독으로 사용할 수는 없고 그래프가 하나 그려져 있어야 합니다. 아래와 같은 형식으로 사용합니다. lines(c(x좌표들),c(y좌표들)) 아래는 예시입니다. > plot(0,xlim=c(0,10),ylim=c(0,10),type="n") > lines(c(1,5),c(2,7)) 선색, 두께, 스타일을 설정해봅시다. col은 색, lwd는 두께, lty는 스타일입니다. lty 옵션은 아래와 같습니다. 선의 형태 0 : blank 1 : solid 2 : dashed 3 : dotted 4 : dotdash 5 : longdash 6 : twodash 옵션을 적용하여 그래프를 그려봅시다. > plot(0,xlim=c(0,10),yli.. 2020. 12. 29.
[R시각화] 자동으로 색 설정해주는 함수 모음 간단한 사용 rainbow(n) heat.colors(n) terrain.colors(n) topo.colors(n) cm.colors(n) rainbow 함수 rainbow(n, s = 1, v = 1, start = 0, end = max(1, n - 1)/n, alpha = 1) HSV라고 색을 표현하는 방식이 있습니다. 변수가 3개라 색 공간이라고도 하는데, H는 색상 S는 채도 V는 명도입니다. rainbow에서는 H인 색상이 n개 지정되고, 채도와 명도를 s와 v라는 옵션으로 입력할 수 있습니다. s가 1에 가까울수록 색이 선명해지고 0에 가까울 수록 엷어집니다. v는 1에 가까울 수록 밝아지고 0에 가까울수록 색이 어두워집니다. alpha는 투명도입니다. s : 채도 v : 명도 alpha .. 2020. 12. 29.
[R 시각화] 시간의 흐름에 따른 순위 변화를 알 수 있는 slope 그래프 아래가 slope 그래프입니다. 오늘 예시로 그려볼 그래프입니다. 5년 간격으로 총 20년 동안의 암 생존율을 나타냅니다. 각 암들의 생존율이 어떻게 변하는지 한눈에 알아볼 수 있습니다. CGPfunctions 패키지의 newggslopegraph 함수를 사용합니다. newcancer 라는 데이터도 CGPfunctions 패키지에서 제공합니다. tidyr 과 dplyr 패키지에 물려서 사용하기 때문에 두 패키지도 필요합니다. 사용 방법은 간단합니다. library(CGPfunctions) library(tidyr) library(dplyr) newggslopegraph(newcancer,Year,Survival,Type) 2020. 12. 23.
[R시각화] 함수와 범위를 입력하면 그래프를 그려주는 curve 함수 curve함수를 이용하면 함수의 그래프를 쉽게 그릴 수 있습니다. 아래는 예시입니다. curve(sin,-pi,pi,n=100) 아래는 입력형식입니다. curve(함수 혹은 수식,from,to,n) 2020. 12. 23.
[R시각화] 여러 그래프 타이틀,축이름,눈금이름 크기 일괄변경하기 boxplot 을 여러개 그린 상황을 가정합시다. 아래와 같습니다. par(mfrow=c(2,2)) boxplot(Sepal.Length~Species,iris,main="Sepal Length") boxplot(Sepal.Width~Species,iris,main="Sapel Width") boxplot(Petal.Length~Species,iris,main="Petal Length") boxplot(Petal.Width~Species,iris,main="Petall Width") 그래프의 제목,축이름,눈금이름의 크기를 조절하고 싶습니다. 각 그래프마다 옵션을 입력해주는 것이 귀찮을 수 있습니다. 이런 경우 그래픽파라미터를 일괄 변경하는 par 함수를 사용합니다. #제목 크기 변경 par(cex.mai.. 2020. 12. 23.
반응형