☆ 오늘 강의 요약 ☆
차트 관련 함수
plot(데이터) : 데이터로 차트를 그려주는 함수
- plot( x축값, y축값, main="제목", xlab="x축제목", ylab="y축제목", xlim=c(시작,끝), ylim=c(시작,끝)
par(bg = x) : 차트 배경을 x색으로 바꿔주는 함수
title( ) : 각 타이틀의 색이나 폰트 크기 변경
axis( ) : 눈금의 색을 변경할 때 사용하는 함수
- axis(1, ) : x축 / axis(2, ) : y축에 눈금이 추가된다.
par(mfrow=c(행의수,열의수)) : 한 화면에 나오는 그래프 수를 정할 수 있다.
- dev.off( ) 나 par(mfrow=c(1,1))을 실행하면 다시 차트가 1개만 나온다.
lines( ) : 차트위에 차트 추가하는 함수
abline( ) : 차트에 선을 추가해준다
lm( ) : 추세선(선형회귀모델) 만드는 함수
rainbow(n) : n개로 무지개 색을 생성하는 함수
label( ) : 차트에 원하는 내용을 추가할 수 있다.
legend( ) : 각 파이에 대한 설명인 범주를 추가
prop.table : table 구조의 비율을 구할 수 있다.
round(데이터, 자릿수) : 자릿수 까지 반올림하는 함수
dev.off( ) :기존의 설정값을 지울 때 사용
attach(x) : 데이터를 찾는 경로를 x로 지정
detach(x) : attach를 해제시킴
차트에 쓰이는 명령어
ann=F : 축이름이 안나온다.
col = 차트 선의 색, rgb로 직접 원하는 색을 고를 수 있다.
axes = FALSE : 차트의 눈금이 없어진다.
pch : 차트의 모양
cex : 차트의 크기
기본 차트 그리기
x<-c(1,2,3,4,5)
plot(x)
기본을 y축으로 생각하여, 자동으로 x축이 생성된다.
x <- seq(2, 10, 2)
plot(x)
y축만 바껴서 나오는 모습
x <-1:10
y <-2*x + 1
plot(x, y)
exam 자료 차트 그리기
setwd("f:\\r_workspace\\Data")
exam <- read.csv("csv_exam.csv")
#plot함수에 데이터프레임 객체를 한번에 전달한다
plot(exam)
iris 차트 그리기
#data.frame에 필드개수가 너무 많으면 차트가 완성이 안된다.
plot(iris)
mpg 차트 그리기
mpg <- as.data.frame(ggplot2::mpg)
dim(mpg)
#열의 개수 * 열의개수
plot(mpg)
plot을 하면 열*열 만큼의 차트가 나온다.
두 변수사이의 상관관계를 나타내는 차트이기 때문
차트에 제목 붙이기
y<-c(170,165,180,156,167)
x<-c(65, 54, 73, 44, 60)
plot(y, x, main="키와몸무게의상관관계")
plot(x축값, y축값, main="제목")
축 눈금 범위 수정하기
# 크기 순으로 정렬
xx<-x[order(x)]
yy<-y[order(x)]
plot(yy, xx, main="키와몸무게의상관관계", xlab="키", ylab="몸무게",
xlim=c(150,200), ylim=c(40, 100)
,col="red", type="o")
plot( x축값, y축값, main="제목", xlab="x축제목", ylab="y축제목", xlim=c(시작,끝), ylim=c(시작,끝)
type에 따라 달라지는 모습
plot(mpg$hwy, mpg$cty, main="도시와 고속도로 연비비교",
xlab="고속도로", ylab="도시", type="p")
plot(mpg$hwy, mpg$cty, main="도시와 고속도로 연비비교",
xlab="고속도로", ylab="도시", type="l")
plot(mpg$hwy, mpg$cty, main="도시와 고속도로 연비비교",
xlab="고속도로", ylab="도시", type="b")
plot(mpg$hwy, mpg$cty, main="도시와 고속도로 연비비교",
xlab="고속도로", ylab="도시", type="s")
차트 색 지정하기 / 축이름 안나오게하기
par(bg="light gray")
plot(exam$id, exam$math, ann=F)
"ann=F"를 추가하면 축이름이 안나온다.
par(bg = x) 차트 배경을 x색으로 바꿔주는 함수
plot(exam$id, exam$math, ann=F, type="o", col=rgb(1,0,0.67))
col = 차트 선의 색, rgb로 직접 원하는 색을 고를 수 있다.
title( xlab="x축", col.lab="blue")
title( ylab="y축", col.lab="green")
title( main="수확과아이디", font.main=3, col.main="blue")
각 타이틀의 색이나 폰트 크기도 title( ) 함수로 직접 변경 가능하다.
눈금 바꿔보기
plot(1:8, rep(1,8), axes = FALSE, col=1:8, pch=17, cex=2, xlab=NA, ylab=NA)
axes = FALSE : 차트의 눈금이 없어진다.
pch : 차트의 모양
cex : 차트의 크기
axis(1, sprintf("%i", 1:8), col="white") #1-x축, 2-y축
axis( ) : 눈금의 색을 변경할 때 사용하는 함수
axis(1, ) : x축 / axis(2, ) : y축에 눈금이 추가된다.
sprintf("%i", 1:8) : 뒤에오는 벡터를 문자열로 전환시킨다 .
col.lst <- c("blue" , "red", "green" , "bisque",
"grey20", "grey90", "green2", "olivedrab2")
plot(1:8, rep(1,8), axes = FALSE, col=col.lst, pch=17, cex=2, xlab=NA, ylab=NA)
axis(1, at=1:8, labels = col.lst, col="white", cex=0.6, padj=3)
벡터를 이용하여 직접 차트의 색을 지정할 수도 있다.
한 화면에 여러 차트 동시에 그리기
data1 <- data.frame(x=1:10, y=2*x+1, z=2*x+2)
par(mfrow=c(1,3)) #행, 열 벡터 = 1줄에 3개가 나오게
plot(x~y, data1, col=rgb(0,0,1, 0.9))
plot(x~z, data1, col=rgb(0,0,1, 0.9))
plot(z~y, data1, col=rgb(0,0,1, 0.9))
par(mfrow=c(행의수,열의수)) : 한 화면에 나오는 그래프 수를 정할 수 있다.
plot(x~y, data1, col=rgb(0,0,1, 0.9), type='o')
plot(x~z, data1, col=rgb(0,0,1, 0.9), type='s')
plot(z~y, data1, col=rgb(0,0,1, 0.9), type='l')
각자 다른 타입으로도 나타낼 수 있음 !
다시 하나만 나오게 하기
dev.off()
par(mfrow=c(1,1))
dev.off( ) 나 par(mfrow=c(1,1))을 실행하면 다시 차트가 1개만 나온다.
dev.off( ) 는 기존의 설정값을 지울 때 자주 사용한다.
차트위에 다른 차트 그리기
exam <- read.csv("csv_exam.csv")
plot(exam$id, exam$math, type="o" )
lines(exam$id, exam$science, type="o")
lines(exam$id, exam$english, type="o")
lines( ) 함수를 이용하면, plot으로 기본 차트를 그린 후, 그 위에 다른 차트를 더 그릴 수 있다.
attach / detach
attach(mtcars)
plot(wt, mpg)
attach를 사용해주면, mtcars$wt라고 지정을 해주지 않아도, 알아서 mtcars의 wt를 찾아내준다.
그래서 간편하게 wt만 써서 mtcars$wt의 효과를 낼 수 있다.
detach는 attach를 해체시켜주는 함수이다.
그래서 detach 후에는 wt를 찾지 못하는 모습을 확인 할 수 있다.
차트에 추세선 그리기
plot(mtcars$wt, mtcars$mpg)
abline( lm(mtcars$mpg~mtcars$wt) ) #lm 함수(선형회귀모델)- 추세선
title('연비와 하중의 관계')
abline( ) : 차트에 선을 추가해준다
lm( ) : 추세선(선형회귀모델) 만드는 함수
plot(mpg$cty, mpg$hwy, pch=16)
plot(hwy~cty, mpg, pch=16, col=rgb(1,0,1,0.5))
abline( lm(hwy~cty, mpg), col=rgb(0,0,1) )
원래 값 보관하고 차트 그리기(opar)
dose <- c(20,30,40,45, 60)
drugA<-c(16, 20, 27, 40, 60)
drugB<-c(15, 18, 25, 31, 40)
par(mfrow=c(1,2))
plot(dose, drugA, type='b')
plot(dose, drugB, type='b')
opar <- par(no.readonly=TRUE) #원래값보관
기존의 그래프
# 옵션수정
par(lty=2, pch=11, col=rgb(1,0,0))
plot(dose, drugA, type='b') #사용
plot(dose, drugB, type='b')
수정한 그래프
par(opar) #원상복구
plot(dose, drugA, type='b') #사용
plot(dose, drugB, type='b')
opar를 사용하니 원래값으로 돌아왔다!
barplot 그리기
library(RColorBrewer)
n<-7
mycolors <- brewer.pal(n, 'PuOr')
barplot(rep(1,n), col=mycolors)
mycolors <- brewer.pal(n, 'Blues')
# 랜덤 샘플뽑아서 차트 만들기
barplot(sample(0:100, 7), col=mycolors)
원래 색이 맘에 안들어서 내가 좋아하는 파랑으로 바꿨다 !
barplot(sample(0:100, 7), col=mycolors, horiz=T)
horiz = T를 추가하면 차트가 가로로 돌려진다.
pie 차트 그리기(원형)
n<-10
#rainbow 색 생성함수
mycolors<-rainbow(n)
pie(rep(1,n), labels=mycolors, col=mycolors)
rainbow(n) : n개로 무지개 색을 생성하는 함수
mycolors<-gray(0:n/n)
pie(rep(1,n), labels=mycolors, col=mycolors)
다양한 색으로 원형 차트를 만들 수 있다!
과일 선호도 차트 만들기
#1.디렉토리이동하기
setwd("f:\\r_workspace\\Data")
#2.파일읽기
fruit <- read.csv("love_fruits.csv", fileEncoding = "cp949")
# 선호하는 과일의 빈도수
t <- table(fruit$선호과일)
# 과일의 수만큼 무지개색으로 만들기
mycolors <- rainbow( length(t))
barplot(t, col=mycolors)
pie(t, col=mycolors)
비율 구하기
#비율을 구하는 함수 prop.table(테이블구조)
p<- prop.table(t)*100
p
prop.table 함수를 이용하면 table 구조의 비율을 구할 수 있다.
비율 반올림 하기
#반올림
r <- round(p, 2)
r
round(데이터, 자릿수) : 자릿수 까지 반올림하는 함수
차트에 퍼센트 추가하기
#table -> data.frame 구조로 바꾼다
data1 <- data.frame(t)
data1
data1$ratio = r
data1
#컬럼명 바꾸기
colnames(data1) <- c("kind", "cnt", "ratio")
data1
pie(data1$ratio, main="선호도",
labels = paste(data1$ratio, "%"),
col=mycolors)
label( ) 함수로 차트에 원하는 내용을 추가할 수 있다.
범주 추가하기
legend( 0.5, 1.2, data1$kind, cex=0.8, fill=mycolors)
legend( ) 함수로 각 파이에 대한 설명인 범주를 추가 할 수 있다!
펭귄 데이터 활용하기
#팽귄데이터셋
install.packages("palmerpenguins")
library(palmerpenguins)
data(package = 'palmerpenguins')
# 구조를 미리 보고, 어떤 자료를 가져올지 골라보자
head(penguins)
str(penguins)
# 종, 부리길이, 부리의 넓이, 지느러미 길이
p <- penguins[, c("species", "bill_length_mm", "bill_depth_mm", "flipper_length_mm")]
p
# 결측치 한번에 제거하기
p<-na.omit(p)
p
ggpairs(p, # Data frame
columns = 1:4, # Columns
aes(color = species, # Color by group (cat. variable) / 종에 따라 색다르게나오게하기
alpha = 0.9))
내가 펭귄을 좋아해서 개인적인 사심으로 넣었다.
이제 mpg는 지겨워..
아델리 펭귄 부리 길이 차트 만들기
adel <-penguins %>% filter(species=="Adelie") %>%
select("species","bill_length_mm")
adel
adel <- na.omit(adel)
ggpairs(adel, # Data frame
columns = 1:2, # Columns
aes(color = species, # Color by group (cat. variable)
alpha = 0.9))
이렇게 select와 filter를 이용해서 원하는 데이터만 골라 차트를 만들 수 있다!
~ 오늘의 강의 후기 ~
다양한 색으로 데이터를 직접 차트로 만들 수 있어서 재밌었다!
데이터 코딩은 어렵다고만 생각했는데, 이렇게 눈으로 다양한 결과를 볼 수 있으니
점점 흥미가 생기는 것 같다.
※ 사용한 교재 : 쉽게 배우는 R 데이터 분석 / 저자 : 김영우
'R > 강의복습' 카테고리의 다른 글
[22.08.17] 7일차 텍스트마이닝 / 워드클라우드만들기 (0) | 2022.08.21 |
---|---|
[22.08.16] 6일차 (ggplot, 산포도, 막대그래프, 선그래프, 데이터분석하기, 전처리) (0) | 2022.08.21 |
[22.08.11] 4일차 강의(arrange / filter / select / mutate / summarize / group_by / join / is.na / na.rm) (0) | 2022.08.14 |
[22.08.10] 3일차 ( 함수만들기 / ls / rm / head / table / order / rename / function / sapply ) (0) | 2022.08.14 |
[22.08.09] 2일차 강의 (0) | 2022.08.13 |