ch0nny_log

[빅데이터분석] R _ 35. 데이터 시각화 2(그래프 생성 문법) 본문

빅데이터 분석(with 아이티윌)/R

[빅데이터분석] R _ 35. 데이터 시각화 2(그래프 생성 문법)

chonny 2024. 7. 2. 11:08
★ [7월 2일 화요일] 점심시간 문제 
타이타닉(tatanic2.csv) 의 성별별 인원수를 plotly 막대 그래프로 시각화 하시오. 
# 타이타닉 테이블 불러오기
setwd('c:\\data')
tat<-read.csv('tatanic2.csv',header =T, fileEncoding ='euc-kr') 
tat

# "plotly" 패키지 열기
library(plotly)

#성별별 인원수 계산 
tat_counts <- table(tat$sex)
tat_counts

# Rcolorbrewer 팔래트 중에서 5가지 색상 선택

# "RColorBrewer" 패키지 열기
library(RColorBrewer) 
colors <- brewer.pal( 5, "Set3")

# plotly 를 사용한 막대 그래프 생성
fig <- plot_ly( x = names(tat_counts), y=as.numeric(tat_counts), type='bar', 
                marker=list(color=colors) )

#그래프 출력
fig​

 

문법1. R 내장 함수를 이용해서 원형 그래프 그리기 !
emp <- read.csv("emp.csv", header=T)

job_cnt <- table(emp$job)

pie( job_cnt, 
     main="직업별 빈도 원형 그래프" ,
     col=rainbow( length(job_cnt) ),
     labels= paste(names(job_cnt), "\n", job_cnt ) )

# 위의 색깔이 촌스러우므로 다른 색깔로 변경하시오 !

job_cnt <- table(emp$job)

colors <- c("skyblue", "coral", "seagreen", "gold", "orchid")

pie( job_cnt, 
     main="직업별 빈도 원형 그래프" ,
     col= colors,
     labels= paste(names(job_cnt), "\n", job_cnt ) )​


★ 문법2. plotly 시각화 패키지로 원형 그래프 그리기
원형그래프는 데이터간 비율을 한눈에 파악할 때 유용한 그래프임.
# 데이터 로드
library(plotly)
emp <- read.csv("emp.csv", header=T)

# 직업별 인원수 계산
job_cnt <- table(emp$job)
job_cnt

# 색상 목록 정의
colors  <- c("#BBDEFB", "#FFCCBC", "#E8F5E9", "#FFF9C4", "#FCE4EC")

# plotly 원형 그래프 생성
fig <-plot_ly(labels = names(job_cnt),
            values = as.numeric(job_cnt),
            type='pie',
            marker=list(colors =colors) )

# 출력
fig
설명: plotly를 이용하면 더 세련된 그래프를 그릴수 있고 홈페이지에 그래프를 넣을때 아주편함.
문제 3. 중고차의 모델별 건수를 가지고 다음과 같이 원형 그래프를 그리시오.
# 데이터 로드
library(plotly)
setwd('c:\\data')
usedcars <- read.csv("usedcars.csv", header=T, fileEncoding ='euc-kr') 


# 모델델별 인원수 계산
cars_cnt <- table(usedcars$model)
cars_cnt 

# 색상 목록 정의
colors  <- c("#BBDEFB", "#FFCCBC", "#E8F5E9", "#FFF9C4", "#FCE4EC")

# plotly 원형 그래프 생성
fig <-plot_ly(labels = names(cars_cnt ),
            values = as.numeric(cars_cnt ),
            type='pie',
            marker=list(colors =colors) )

# 출력
fig​

 

문제 4. 데이터 시각화를 빠르게 하기 위해 모아놓은 활용코드를 만드시오 (swith 함수)\
그리고 나서  yys.R 을 아래와 같이 수정합니다.


# 사용자가 선택할 수 있는 옵션 출력
cat("1: 막대 그래프 코드 \n")
cat("2: 원형 그래프 코드 \n")

# 사용자 입력 받기 
num <- as.integer( readline(prompt="번호를 선택하세요:" ))

# switch 문을 사용해서 선택에 따라 다른 메세지 출력
result <- switch( num, 
                  "1" =  cat( readLines("bar_plot.R"), sep = "\n"),
                  "2" =  cat( readLines("pie_plot.R"), sep = "\n"),
                  "유효하지 않은 선택입니다."
)

cat(result, "\n")

위 코드를 메모장에 저장하여 c드라이브에 저장 후 r studio 에 명령어작성
문제 5. bar_plot.R이라는 이름으로 빨리 가져다 쓸수 있는 막대 그래프 코드를 c:\\data 밑에 저장하시오. 
# bar_plot.R

# 1. 데이터 불러오기
usedcars <- read.csv("usedcars.csv", header=TRUE)
head(usedcars)

# 2. 건수 불러오기 
car_counts <- table(usedcars$model)
car_counts

# 3. 색깔 지정하기 
colors <- c("gold", "skyblue", "tomato", "lightgreen", "purple")

# 4. plotly 를 사용한 막대 그래프 생성하기
fig <- plot_ly(x = names(car_counts),
               y = as.numeric(car_counts),
               type = 'bar',
               marker = list(color = colors))

# 5. 그래프 출력
fig​

문제 6. bar_plot.R 스크립트를 화면에 출력하시오.
> cat(readLines('bar_plot.R'),sep = '\n')​

설명: readLines 함수로 bar_plot.R울 불러오고 cat으로 화면에 코드를 출력하는데 sep='\n' 으로 라인과 라인은 엔터로 구분해서 출력하겠다는 뜻임
문제 7. 특급 데이터 분석가 코드처럼 시각화 코드 모음을 불러오는 코드에 스크립트를 추가하시오 !
# 사용자가 선택할 수 있는 옵션 출력
cat("1: 막대 그래프 코드 \n")
cat("2: 원형 그래프 코드 \n")

# 사용자 입력 받기 
num <- as.integer( readline(prompt="번호를 선택하세요:" ))

# switch 문을 사용해서 선택에 따라 다른 메세지 출력
result <- switch( num, 
                  "1" = cat( readLines("bar_plot.R"), sep = "\n"),
                  "2" = " 두번째 옵션을 선택했습니다.",
                  "유효하지 않은 선택입니다."
)

cat(result, "\n")​

설명: 위와 같이 코드가 나

 

문제 8. 원형 그래프 스크립트 저장
c://data 밑에 pie_plot.R 이라는 이름으로 아래의 스크립트를 저장하고


# plotly 패키지 로드
library(plotly)

# 작업 디렉토리 설정
setwd("c:\\data")

# 데이터 로드
usedcars <- read.csv("usedcars.csv", header = TRUE)

# 건수 계산산
color_counts <- table(usedcars$model)

# 사용자 정의 색상 목록
colors <- c("gold", "skyblue", "tomato", "lightgreen", "purple", "orange", "pink", "cyan")

# plotly를 사용한 원형 그래프 생성
fig <- plot_ly(labels = names(color_counts), 
               values = as.numeric(color_counts), 
               type = 'pie', 
               marker = list(colors = colors))

# 그래프 출력
fig​