본문 바로가기
반응형

전체 글131

[R시각화] 마우스로 선택한 점을 추가해주는 locator 함수 locator 함수는 마우스로 선택한 점을 추가해줍니다. locator() 라고 명령창에 입력한 뒤에, 그래프에서 원하는 위치를 선택합니다. 복수 선택도 가능합니다. 선택이 완료되면 Esc 키를 누릅니다. 명령창에 선택한 점이 출력됩니다. 빈 그래프를 하나 그려봅시다. > plot(0,xlim=c(0,10),ylim=c(0,10),type="n") 명령창에 locator() 를 입력합니다. 꼭 괄호를 함께 입력해야 합니다. 화면을 클릭합니다. 선택이 끝나면 Esc를 누릅니다. 아래와 같이 점이 출력됩니다. > locator() $x [1] 1.753678 3.151906 3.151906 4.914890 7.042630 $y [1] 6.613469 3.668248 3.668248 6.677496 3.604.. 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.
[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 시각화] 클리브랜드 점 그래프 (유용한데 한마디로 설명하기가...) 클리브랜드 점 그래프는 한마디로 설명하기가 참 애매합니다. 예시를 통해 이해해봅시다. 간단하게 이해하실 수 있습니다. 5사람의 수학점수로 행렬을 만들어봅시다. 5사람의 이름은 행렬 행 이름에 넣어야 합니다. #점수와 이름 > math_score=c(88,75,62,91,100,48) > names=c("tim","marry","kate","john","kim","park") #행렬생성 > m=matrix(math_score) #행렬 열이름,행이름 > rownames(m)=names > colnames(m)="math_score" > m score tim 88 marry 75 kate 62 john 91 kim 100 park 48 이 행렬로 클리브랜드 점 그래프를 그려봅시다. > dotchart(m) 그.. 2020. 12. 27.
[R시각화] 그래프 공통 옵션 plot(), hist(), boxplot() 등의 고수준 함수에 설정할 수 있는 옵션들입니다. 그래픽관련 옵션 말고 비그래픽 옵션들만 정리하였습니다. 모든 고수준 그래프에 적용하는 옵션 옵션 설명 xlim=c(min,max) x축 최댓값과 최솟값 설정 ylim=c(min,max) y축 최댓값과 최솟값 설정 main="제목" 제목 입력 sub="부제목" 부제목 입력 xlab="x축 이름" x축 이름 입력 ylab="y축 이름" y축 이름 입력 cex.main=1.2 제목 크기 cex.lab=1 축 이름 크기 cex.axis=1 눈금 이름 크기 axes=TRUE or FALSE 축 보이기, 숨기기 add=FALSE or TRUE TRUE일 경우 다른 그래프에 겹쳐그림 asp 축의 가로 세로 비율 las 축.. 2020. 12. 26.
[R시각화] 저수준과 고수준함수 설명 R의 시각화에는 사용되는 함수들은 고수준함수, 저수준함수로 나뉩니다. 고수준함수는 완성된 그래프를 제공하는 함수들입니다. 예를들면 plot 함수가 있습니다. > plot(1:10,main="my graph") 저수준함수는 고수준함수가 그려진 상태에서 제목, x축이름, 눈금간격, 텍스트, 도형 등을 추가할 때 사용하는 함수입니다. 고수준함수의 '옵션'과 저수준함수의 역할이 중복되는 경우가 많습니다. 예를들어 위 그래프는 옵션대신 저수준함수를 사용하여 그릴 수도 있습니다. > plot(1:10) > title(main="my graph2") 2020. 12. 26.
[R시각화] 확률분포 함수 쉽게 그리는 방법 (curve 함수) 정규분포 함수를 그린다고 해봅시다. 정규분포의 확률밀도함수는 dnorm(x) 입니다. 먼저 plot 함수를 이용하여 그래프를 그려보겠습니다. 뒤에서는 curve함수를 이용할 것인데, 둘을 비교하면 curve함수가 얼마나 편한지 알게 되실 것입니다. plot 함수 이용 x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type="l",main="PDF of N(0,1)") curve 함수 이용 curve(dnorm(x),-4,4,main="PDF of N(0,1)") 2020. 12. 26.
[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 시각화] 산점도 제목,축이름,눈금이름 크기변경 산점도 그래프에서 제목,축이름,눈금이름의 크기를 변경하는 방법은 크게 세가지가 있습니다. 1) plot 그래프에 옵션 설정 2) 저수준함수 title, axis 이용 3) 그래픽 파라미터 일괄 변경 (par 함수) 이 글에서는 1번의 경우를 다룹니다. 제목,축이름,눈금이름 크기를 변경할 때, plot 함수에 입력하는 옵션은 아래와 같습니다. 제목 크기 : cex.main 축 이름 크기 : cex.lab 눈금 이름 크기 : cex.axis 아래는 예시입니다. plot(1:10,main="my graph",xlab="X",ylab="Y", cex.main=1.5,cex.lab=1.7,cex.axis=2) 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.
[R 시각화] 설정할 수 있는 모든 그래픽 파라미터 보는 법 (par함수) 아래 코드를 입력합니다. > par() $xlog [1] FALSE $ylog [1] FALSE $adj [1] 0.5 $ann [1] TRUE $ask [1] FALSE $bg [1] "white" $bty [1] "o" $cex [1] 0.66 $cex.axis [1] 1 $cex.lab [1] 1 $cex.main [1] 1.2 $cex.sub [1] 1 $cin [1] 0.15 0.20 $col [1] "black" $col.axis [1] "black" $col.lab [1] "black" $col.main [1] "black" $col.sub [1] "black" $cra [1] 14.4 19.2 $crt [1] 0 $csi [1] 0.132 $cxy [1] 0.2242266 0.1370196.. 2020. 12. 22.
[R 시각화] 현재 여백(margin) 값 확인하는 방법 inner margin 확인 > par()$mar [1] 5.1 4.1 4.1 2.1 outer margin 확인 > par()$oma [1] 0 0 0 0 2020. 12. 22.
[R 시각화] 그룹형 막대그래프 그리는 방법 행렬을 하나 정의해봅시다. 세 사람의 수학,영어, 과학 성적입니다. Tim = c(67,68,39) Marry = c(65,36,20) Kate = c(88,90,45) dt=cbind(Tim,Marry,Kate) rownames(dt)=c("Math","English","Science") 데이터를 확인해봅시다. > dt Tim Marry Kate Math 67 65 88 English 68 36 90 Science 39 20 45 barplot 을 적용합시다. beside 를 TRUE로 설정해야 그룹형 막대그래프가 그려집니다. 열이 하나의 그룹이 되고, 각 열의 행은 그룹에 속한 막대가 됩니다. barplot(dt,beside=TRUE) 색을 지정해봅시다. col 옵션을 사용합니다. 범례가 들어갈 자리.. 2020. 12. 22.
[R 시각화] 그래프 밖에 화살표 추가하는 방법 arrow 함수를 이용하여 그래프 밖에 화살표를 추가할 때는 xpd 옵션을 TRUE로 설정하면 됩니다. 예시는 아래와 같습니다. df=30 alpha=0.05 x=seq(-5,5,0.1) y=dt(x,df) plot(x,y,'l') xp=seq(qt(1-alpha,df),10,0.1) yp=dt(xp,df) polygon(c(xp,rev(xp)),c(rep(0,length(xp)),rev(yp)),col="blue") title(main=paste(df,"자유도 t분포")) arrows(qt(1-alpha,df),-0.035,qt(1-alpha,df),par("usr")[3],xpd=TRUE,length=0.13,lwd=2,col="red") #그래프 밖에 화살표 추가 text(qt(1-alpha,df).. 2020. 12. 18.
[R 시각화] 그래프에 화살표 추가하는 방법 그래프에 화살표를 추가할 때는 arrows 함수를 사용합니다. 기본 형식은 아래와 같습니다. arrows(x0, y0, x1, y1) x0,y0 : 시작점 x1,y1 : 끝점 그래프를 그리고 화살표를 추가해봅시다. plot(1:3,1:3) arrows(1,2,2,2.5) ㅁ몇가지 꾸미기 옵션은 아래와 같습니다. length : 화살길이 angle : 화살각도 col : 화살 색 code : 화살표 방향 (0:없음, 1:시작에서끝, 2: 끝에서시작, 3:양쪽화살표) lty : 선 스타일 lwd : 선두께 꾸미기 옵션을 사용하여 화살표를 그려봅시다 . plot(1:3,1:3) arrows(1,2,2,2.5,length=0.5,angle=50,col="red",lty=2) 2020. 12. 17.
[R 시각화] 그래프 눈금 색, 눈금 값의 색 변경 (axis함수 사용) 눈금과 눈금값의 색을 변경할 때는 아래 옵션을 사용합니다. plot 함수 안에 정의할 수도 있고, axis 라는 저수준함수를 사용할 수도 있습니다. 이 글은 axis 함수를 사용하는 방법입니다. axis 함수를 사용할 경우 x축과 y축 옵션을 각각 설정할 수 있습니다. 눈금 색 변경 col.ticks="red 눈금 값의 색 변경 col.axis="red" 예를들어봅시다. 그래프를 하나 그려봅시다. plot(1:3,1:3) 눈금 색과 눈금 값 색을 변경해봅시다. plot(1:3,1:3) #side1은 아래, 즉 x축을 의미합니다. axis(side=1,col.axis="red",col.ticks='green') #side2은 왼쪽, 즉 y축을 의미합니다. axis(side=2,col.axis="cyan",.. 2020. 12. 17.
[R 시각화] 그래프 눈금 색, 눈금 값 색 변경 (plot함수 안에 정의) 눈금과 눈금값의 색을 변경할 때는 아래 옵션을 사용합니다. plot 함수 안에 정의할 수도 있고, axis 라는 저수준함수를 사용할 수도 있습니다. 이 글은 plot 함수 안에 정의하는 방법입니다. 눈금 색 변경 옵션 col.ticks 눈금 값 색 변경 옵션 col.axis 예를들어봅시다. 그래프를 하나 그려봅시다. plot(1:3,1:3) 눈금 색과 눈금 값 색을 변경해봅시다. plot(1:3,1:3,col.axis="red",col.ticks='green') 2020. 12. 17.
[R 시각화] 산점도 점에 번호 붙이는 방법 산점도 그래프에 있는 점에 번호를 붙이는 방법입니다. text 함수를 이용합니다. 아래는 설정한 옵션입니다. text(x좌표,y좌표,labels=번호,pos=위치,cex=크기) 그래프를 그려봅시다. set.seed(2020) x=rnorm(30) y=rnorm(30) plot(x,y) text(x,y,labels=1:30,pos=1,cex=0.8) pos 옵션 값의 역할은 아래와 같습니다. 1 : 하 2 : 좌 3 : 상 4 : 우 pos를 바꿔가며 그래프를 그려봅시다. set.seed(2020) x=rnorm(30) y=rnorm(30) par(mfrow=c(2,2)) for (i in 1:4){ plot(x,y) title(main=paste("pos=",i)) text(x,y,labels=1:30,.. 2020. 12. 17.
[R 시각화] 막대그래프 x축 눈금, y축 눈금 크기 변경 1. 막대그래프 그리기 volume=c(500,600,200) names=c("americano","latte","chocolate") barplot(volume,names=names) 2. x축 눈금 크기 변경 cex.names 옵션을 사용합니다. mb=barplot(volume,names=names,cex.names=1.4) 3. y축 눈금 크기 변경 cex.axis 옵션을 사용합니다. mb=barplot(volume,names=names,cex.axis=1.5) 2020. 12. 16.
[R 시각화] 막대그래프 x축 눈금이름 회전하기 막대그래프를 하나 그려봅시다. volume=c(500,600,200) names=c("americano","latte","chocolate") barplot(volume,names=names) 90도 단위로 회전 las 옵션을 이용하면 90도 단위로는 회전이 가능합니다. las 옵션을 사용합니다. barplot(volume,names=names,angle=90,las=2) 임의의 각도로 회전 임의의 각도로 회전하려면 text 함수를 이용하면 됩니다. xpd 는 plot region 밖으로 나갈 수 있는지 여부를 결정하는 옵션입니다. adj=1 은 오른쪽 정렬입니다. srt가 각도입니다. volume=c(500,600,200) names=c("americano","latte","chocolate") mb=.. 2020. 12. 16.
[R 시각화] 팩토리얼, 감마 함수 그래프 팩토리얼 함수를 산점도로, 감마함수를 선으로 그린 그래프입니다. 범위 수정을 원하면 x와 x_g를 수정해주면 됩니다. x=1:5 y=factorial(x-1) plot(x,y,main="Factorial function",cex.main=1.5,pch=16,col="red") x_g=seq(1,5,0.02) y_g=gamma(x_g) lines(x_g,y_g) 2020. 12. 14.
[R 시각화] 다변량 시계열 그래프 그리기 다변량 시계열을 생성하고 그래프를 그려봅시다. 다변량시계열은 ts 함수에 행렬을 입력하여 생성합니다. 먼저 행렬을 생성합시다. > mat=matrix(rnorm(30),10,3) > mat [,1] [,2] [,3] [1,] -0.176291735 0.3323575 -0.6542597 [2,] -0.928060332 -0.5374235 0.7382477 [3,] -0.003182761 1.7133234 0.9095766 [4,] 1.459855751 -1.0273686 1.7733747 [5,] 0.057111027 -2.1042541 0.7851097 [6,] -0.411653367 0.5216750 1.4261827 [7,] -0.381249441 -1.0180405 -1.0944751 [8,] -0.. 2020. 12. 13.
[R 시각화] 시계열 그래프 그리기 먼저 ts 함수를 이용하여 시계열 데이터를 생성하고 plot 함수로 그래프를 그려봅시다. rnorm 함수에서 임의로 100개의 값을 추출합니다. 시작일은 2020년 첫분기로 놓습니다. freq 를 12로 놓을 경우 1년이 12개로 나눠지므로, c(2020,1) 의 의미는 2020년 1월이 됩니다. y=ts(rnorm(100),start=c(2020,1),freq=12) plot(y) 2020. 12. 13.
R 화면분할하는 방법 (mfrow, 격자형태로 분할) 아래 코드를 입력합니다. par(mfrow=c(행의 수, 열의 수)) 예를들어 화면을 1행2열로 분할하여 그래프를 2개 그려봅시다. par(mfrow=(c(1,2))) plot(1:5,1:5,xlab="x",ylab="y",xlim=c(0,6),ylim=c(0,6)) plot(1:5,c(1,3,2,5,4),xlab="x",ylab="y",xlim=c(0,6),ylim=c(0,6)) 2020. 12. 11.
R 히스토그램 x축, y축 눈금 설정하기 R 히스토그램 x축, y축 눈금 설정하기 오늘 코드 모아보기 #breaks 설정 brks=seq(4,8,0.2) #hist 그리기(제목,축이름,눈금 없음) hist(iris$Sepal.Length, breaks=brks, ann=FALSE,axes=FALSE,xlim=c(2,10),ylim=c(0,22)) #x축 눈금 추가 axis(side=1,at=seq(2,10,1)) #y축 눈금 추가 axis(side=2,at=seq(0,20,2)) #제목 추가 title(main="my histogram",xlab="Sepal Length",ylab="빈도") 따라하기 내장데이터인 iris 의 Sepal.Length 로 히스토그램을 그리겠습니다. 먼저 x값 범위를 알기 위해 최댓값과 최솟값을 구해봅시다. > mi.. 2020. 12. 9.
R 밀도(density) 히스토그램 히스토그램의 y값이 왜 1이 넘을까 R 히스토그램에서 밀도(density) 히스토그램으로 설정을 하면 전체 넓이가 1이 되게끔 그래프를 그려줍니다. 따라서 각 계급 간격의 합이 1보다 작다면 높이가 1보다 커질 수 있는 것입니다. 계급 간격이 0~0.1, 0.1~0.2 두개뿐이라고 해봅시다. 이때 밑변이 0.2이므로, 전체 넓이가 2이 되려면 각 높이의 합이 5가 되야 합니다. 예를들어 아래와 같은 계급값과 도수가 있다고 합시다. 160~170 : 5 170~180 : 5 상대도수를 계산하면 아래와 같습니다. 160~170 : 0.5 170~180 : 0.5 R 히스토그램에서의 density는 아래와 같습니다. 160~170 : 0.05 170~180 : 0.05 height=c(161,162,163,164,165,171,172,173,1.. 2020. 12. 9.
R 히스토그램 여러개 겹쳐그리기 (투명하게) R 히스토그램 여러개 겹쳐그리기 (투명하게) 오늘 코드 모아보기 #break 설정 x_ax=seq(02,8,0.2) #히스토그램 만들어서 저장, plot=FALSE로 설정하여 그려지지 않게함 hist1=hist(iris$Sepal.Length, breaks=x_ax, plot = FALSE) hist2=hist(iris$Sepal.Width, breaks=x_ax, plot = FALSE) #plot 함수로 히스토그램 그리기 plot(hist1, col=adjustcolor("red",alpha=0.5),ylim=c(0,40),ann=FALSE) plot(hist2, col=adjustcolor("blue",alpha=0.5), add = TRUE) #제목설정 title(main="my histogram.. 2020. 12. 9.
R 역 누적분포 히스토그램 R 역 누적분포 히스토그램 일반적인 누적분포를 계산하는 방법은 아래와 같습니다. data=c(1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6) 간격을 1로 설정하면 계급과 도수는 아래와 같습니다. 누적도수의 경우 간격을 1로 설정해야 그래프를 그리기가 수월합니다. 0-1 : 11-2 : 22-3 : 33-4 : 44-5 : 55-6 : 6 누적도수로 나타내면 아래와 같습니다. 0-1 : 11-2 : 32-3 : 63-4 : 104-5 : 155-6 : 21 여기서 말하는 '역'누적분포는 아래와 같습니다. 0-1 : 211-2 : 202-3 : 183-4 : 154-5 : 115-6 : 6 누적도수가 앞에서 부터의 누적이라면, 역누적도수는 뒤에서부터의 누적입니다. 아래의 절차로 .. 2020. 12. 8.
반응형