Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 순위출력
- difftime
- 여러 데이터 검색
- loop 문
- 히스토그램 그리기
- Intersect
- 팀스파르타
- Sum
- 단순회귀 분석
- 그래프 생성 문법
- 막대그래프
- %in%
- 그래프시각화
- 데이터분석
- 회귀분석 알고리즘
- 상관관계
- 불순도제거
- 빅데이터분석
- sql
- sqld
- 회귀분석
- 데이터분석가
- merge
- 빅데이터
- Dense_Rank
- count
- max
- if문 작성법
- 정보획득량
- 총과 카드만들기
Archives
- Today
- Total
ch0nny_log
[빅데이터분석] R _ 37. 데이터 시각화4 (라인 그래프) 본문
라인 그래프란?
- 시간에 따른 변화를 추적 확인할 때 매우 효과적인 그래프
ex. 제품의 가격 변동과 판매량과의 관계
- 두변수간의 관계를 시각화 할때 유용
- 경향성 분석
ex. 년도별로 출산율이 저하되는지 확인
문법1. plotly 로 강남역 시간대별 승하차수를 라인 그래프로 시각화 하시오.
#예제1. 승차수 라인만 출력하시오
# 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')) # 그래프 출력 fig
문법2. 위 그래프의 하차수도 라인그래프로 추가하시오.
# 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
문제1. 한국 출산율 데이터를 데이터 프레임으로 생성하시오. (라인그래프 시각화)
# 데이터 업로드드 setwd('c:\\data') birth <- read.csv('korea_birth.csv',header =T, fileEncoding ='euc-kr') birth # plotly를 사용한 라인 그래프 생성 (승차수, 하차수 라인 출력) fig <- plot_ly(birth, x = ~k_year) %>% add_trace(y = ~birth_rate, name = '출산율', type = 'scatter', mode = 'lines+markers', line = list(color = '#FFCCBC'), marker=list(color='#BBDEFB')) #제목 출력 fig <- fig%>% layout(title ='1970-2023년 까지의 출산율') # 그래프 출력 fig
문제2. 아래의 링크에서 일본 출산율 데이터를 가지고 데이터 프레임, 시각화 하시오.
# plotly 패키지 로드 library(plotly) # 작업 디렉토리 설정 setwd("c:\\data") # 한국 출산율 데이터 로드 korea_data <- read.csv("korea2.csv", header = TRUE) # 일본 출산율 데이터 로드 japan_data <- read.csv("japan2.csv", header = TRUE) # 데이터 프레임을 합치기 위해 열 이름 통일 colnames(korea_data) <- c("year", "birth_rate") colnames(japan_data) <- c("year", "birth_rate") # 출처를 구분하기 위한 열 추가 korea_data$country <- "Korea" japan_data$country <- "Japan" # 두 데이터를 합치기 combined_data <- rbind(korea_data, japan_data) #설명: rbind 는 위아래와 데이터를 연결 # cbind 는 양옆으로 데이터를 연결 # plotly를 사용한 라인 그래프 생성 fig <- plot_ly(combined_data, x = ~year, y = ~birth_rate, color = ~country, colors = c('blue', 'red'), type = 'scatter', mode = 'lines+markers') # 그래프 출력 fig 설명: color = ~country 를 사용하게 되면 국가별로 다른 색상을 사용을 합니다. 국가별로 라인 그래프가 그려지는데 colors = c('blue', 'red') 를 지정해서 라인색깔로 국가를 구분합니다.
문제3. 1~4호선 승하차 승객수 데이터 프레임 만들고 시각화 하시오 (x축 시간/ y축 승객수 / 승차수가 in 만 가지고 라인그래프를 그리시오)
# 작업 디렉토리 설정 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
문제4. 지하철1-4호선 승차수를 라인그래프로 출력하는데 아래의 코드를 line_plot.R이라는 이름으로 C드라이브 밑에 저장하세요. (line_plot.R 이라는 이름으로)
library(plotly) 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
★ 문제 5. yys.R에 3번 코드로 line_plot.R 을 추가하시오.
# 필요한 패키지 로드 library(svDialogs) library(plotly) # 옵션 메시지 정의 options_list <- list("1: 막대 그래프 코드", "2: 원형 그래프 코드", "3: 라인 그래프 코드") # 사용자 입력 받기 (대화 상자 사용) dialog_result <- dlgList(options_list, title = "번호를 선택하세요")$res # switch 문을 사용해서 선택에 따라 다른 메세지 출력 및 실행 if (is.null(dialog_result)) { cat("유효하지 않은 선택입니다.\n") } else { num <- as.integer(substr(dialog_result, 1, 1)) # 선택한 옵션의 첫 글자를 숫자로 변환 fig <- switch(as.character(num), "1" = { cat(readLines("bar_plot.R"), sep = "\n") source("bar_plot.R", local = TRUE) fig # bar_plot.R에서 생성된 fig 객체 반환 }, "2" = { cat(readLines("pie_plot.R"), sep = "\n") source("pie_plot.R", local = TRUE) fig # pie_plot.R에서 생성된 fig 객체 반환 }, "3" = { cat(readLines("line_plot.R"), sep = "\n") source("line_plot.R", local = TRUE) fig # pie_plot.R에서 생성된 fig 객체 반환 }, { cat("유효하지 않은 선택입니다.\n") NULL } ) if (!is.null(fig)) { print(fig) # fig 객체를 명시적으로 출력 } }
source('yys.R')
'빅데이터 분석(with 아이티윌) > R' 카테고리의 다른 글
[빅데이터분석] R _ 39. 데이터 시각화 5 (히스토그램 그래프 2) (1) | 2024.07.03 |
---|---|
[빅데이터분석] R _ 38. 데이터 시각화 5 (히스토그램 그래프) (0) | 2024.07.02 |
[빅데이터분석] R _ 36. 데이터 시각화 3 (산포도) (0) | 2024.07.02 |
[빅데이터분석] R _ 35. 데이터 시각화 2(그래프 생성 문법) (0) | 2024.07.02 |
[빅데이터분석] R _ 34. 시각화 툴의 역사 (막대그래프)/ 데이터 시각화 1 (1) | 2024.07.01 |