ch0nny_log

R 그래프 코드 모음 본문

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

R 그래프 코드 모음

chonny 2024. 7. 3. 11:09

■ 원형 그래프 생성

# 데이터 로드
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



■ 막대 그래프 생성

# 타이타닉 테이블 불러오기
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​


■ 산포도 그래프 생성

# 데이터 불러오기
library(plotly)
setwd("c:\\data")
usedcars <- read.csv("usedcars.csv", header=TRUE)

# 산포도 그래프 생성
fig <- plot_ly( data= usedcars,
                x = ~mileage,
                y = ~price,
                type='scatter',
                mode='markers',
                marker = list(color='blue'))

# 추세선 추가
fig <- fig%>%add_trace(x=usedcars$mileage,
                       y=fitted(lm(price~mileage, data=usedcars)),
                       type='scatter',
                       mode='lines',
                       line=list(color='red'),
                       name='Trend Line')

# 그래프 출력
fig


■ 라인그래프

# plotly 패키지 로드
library(plotly)

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

# 데이터 로드
data <- read.csv("2호선_강남역_시간대별_승하차현황_수정2.csv", header = TRUE, fileEncoding = "euc-kr")
data

# plotly를 사용한 라인 그래프 생성 (승차수, 하차수 라인 출력)
fig <- plot_ly(data, x = ~time) %>%
  add_trace(y = ~in_cnt, name = '승차', type = 'scatter', mode = 'lines+markers', line = list(color = 'blue'))
 %>% add_trace(y = ~out_cnt, name = '하차', type = 'scatter', mode = 'lines+markers', line = list(color = 'red'))
# 그래프 출력
fig <- plot_ly(data, x = ~time) %>%
  add_trace(y = ~in_cnt, name = '승차', type = 'scatter', mode = 'lines+markers', line = list(color = 'blue')) %>%
  add_trace(y = ~out_cnt, name = '하차', type = 'scatter', mode = 'lines+markers', line = list(color = 'red'))


■ 지하철 라인그래프

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

# 지하철철 데이터 로드
data <- read.csv("1-4호선승하차승객수_수정된것.csv", header = TRUE)
data

# plotly를 사용한 라인 그래프 생성
fig <- plot_ly(data, 
               x = ~time, 
               y = ~in., 
               color = ~line_no, 
               colors = c('blue', 'red'),
               type = 'scatter', mode = 'lines+markers')

# 그래프 출력
fig​



■ 히스토그램 그래프

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


# 평균값, 중앙값, 최빈값 계산 함수
calculate_stats <- function(data) {
  mean_value <- mean(data)
  median_value <- median(data)
  mode_value <- density(data)$x[which.max(density(data)$y)]
  return(list(mean = mean_value, median = median_value, mode = mode_value))
}

# 통계량 계산
mileage_stats <- calculate_stats(mileage)


# 1. 대칭분포 그래프 그리기
hist(mileage, breaks=30, col="grey", border="white", prob=TRUE, main="대칭분포", xlab="값", ylab="밀도")
lines(density(mileage), col="red")  # 확률 밀도 함수 그래프
abline(v=mileage_stats$mean, col="blue", lwd=2, lty=2)   # 평균값
abline(v=mileage_stats$median, col="green", lwd=2, lty=2) # 중앙값
abline(v=mileage_stats$mode, col="purple", lwd=2, lty=2)  # 최빈값