선 그래프 (Line Chart)
선 그래프(Line Chart)는 시계열 데이터나 연속 데이터의 변화를 그래프로 나타낸 것이다.
데이터의 위치 점들을 선으로 연결하여 데이터의 추세나 패턴을 보여준다.
선 그래프는 주로 연속 데이터를 시각화하는 데 사용되며, 시간, 온도, 주가, 판매량 등과 같은 연속적으로 변화하는 데이터를 시각화하여, 데이터의 변화나 경향을 파악하는 데 유용하다.
R 기본함수 : plot 함수 사용
사용 데이터 : 서울시 일 기온 (평균기온, 최저기온, 최고기온)
Data source : https://data.kma.go.kr/
기간 : 2022년 1월 1일 ~ 2023년 10월 14일
관측 지역 : 서울(108)
library(readxl) seoul_temper <- read_excel("ta_20231015210826.xlsx") summary(seoul_temper) |
||||||||||
m_date | m_spot | avg_temper | low_temper | high_temper | ||||||
Min. : | 2022-01-01 | 0:00:00 | Min. : | 108 | Min. : | -14.7 | Min. : | -17.3 | Min. : | -8.6 |
1st Qu.: | 2022-06-12 | 18:00:00 | 1st Qu.: | 108 | 1st Qu.: | 5.975 | 1st Qu.: | 1.25 | 1st Qu.: | 10.78 |
Median : | 2022-11-22 | 12:00:00 | Median : | 108 | Median : | 17.05 | Median : | 11.9 | Median : | 22.15 |
Mean : | 2022-11-22 | 12:00:00 | Mean : | 108 | Mean : | 14.588 | Mean : | 10.51 | Mean : | 19.34 |
3rd Qu.: | 2023-05-04 | 6:00:00 | 3rd Qu.: | 108 | 3rd Qu.: | 23.9 | 3rd Qu.: | 20.3 | 3rd Qu.: | 27.82 |
Max. : | 2023-10-14 | 0:00:00 | Max. : | 108 | Max. : | 30.9 | Max. : | 27.4 | Max. : | 36.1 |
NA's : | 1 |
# 그래프 옵션 설정
plot(seoul_temper$m_date, seoul_temper$avg_temper, type = "l", col = "blue",
xlab = "Date", ylab = "Temperature",
main = "Seoul Temperature Trends", ylim = c(-10, 40)) # ylim으로 y축 범위 설정
lines(seoul_temper$m_date, seoul_temper$high_temper, col = "red")
lines(seoul_temper$m_date, seoul_temper$low_temper, col = "green")
plot 함수를 사용하여 평균 온도를 나타내는 선 그래프를 표시
type = "l"은 선 그래프로 설정하고, col로 선 색상을 지정
xlab과 ylab는 각각 x 축과 y 축 레이블을 설정하며, main은 그래프의 제목을 설정
ylim 매개변수를 사용하여 y축 범위를 지정
lines 함수를 사용하여 최고 온도와 최저 온도를 나타내는 선 그래프를 추가
# 범례 추가
legend(x = "topright", y = max(seoul_temper_subset$avg_temper),
legend = c("Average", "High", "Low"), col = c("blue", "red", "green"), lty = 1)
plot (line plot) 옵션
[Rstudio] 데이터 유형별 그래프 선택 기준 및 R 그래프 함수 (tistory.com)
ggplot + geom_line
geom_line #1
변수별로 geom_line으로 추가
ggplot(seoul_temper, aes(x = m_date)) +
geom_line(aes(y = avg_temper, col = "blue")) +
geom_line(aes(y = high_temper, col = "red")) +
geom_line(aes(y = low_temper, col = "green")) +
labs(title = "Seoul Temperature Trends", x = "Date", y = "Temperature") +
coord_cartesian(ylim = c(-10, 40)) # y축 범위 설정
geom_line #2 : 색상 스케일 설정
scale_color_manual
ggplot(seoul_temper, aes(x = m_date)) +
geom_line(aes(y = avg_temper, col = "Average")) +
geom_line(aes(y = high_temper, col = "High")) +
geom_line(aes(y = low_temper, col = "Low")) +
scale_color_manual(values = c("Average" = "blue", "High" = "red", "Low" = "green")) + # 색상 스케일 설정
labs(title = "Seoul Temperature Trends", x = "Date", y = "Temperature") +
coord_cartesian(ylim = c(-10, 40))
geom_line #3 : geom_point 결합
서울시 2023년 6월~8월 평균 기온
seoul_temper_2023_678 <- seoul_temper %>% filter (m_date >= "2023-06-01" & m_date < "2023-09-01") head(seoul_temper_2023_678) tail(seoul_temper_2023_678) |
> head(seoul_temper_2023_678) # A tibble: 6 × 5 m_date m_spot avg_temper low_temper high_temper <dttm> <dbl> <dbl> <dbl> <dbl> 1 2023-06-01 00:00:00 108 22.8 19.7 26.3 2 2023-06-02 00:00:00 108 20.4 17.9 25 3 2023-06-03 00:00:00 108 22 16.6 27.8 4 2023-06-04 00:00:00 108 22.1 16.9 28 5 2023-06-05 00:00:00 108 21.5 17.6 26.3 6 2023-06-06 00:00:00 108 20.3 17.3 25.2 > tail(seoul_temper_2023_678) # A tibble: 6 × 5 m_date m_spot avg_temper low_temper high_temper <dttm> <dbl> <dbl> <dbl> <dbl> 1 2023-08-26 00:00:00 108 26.4 23.3 30.3 2 2023-08-27 00:00:00 108 26.1 22.7 29.6 3 2023-08-28 00:00:00 108 22.7 20.8 25.6 4 2023-08-29 00:00:00 108 23.9 22.5 25.5 5 2023-08-30 00:00:00 108 22.8 21.5 24.5 6 2023-08-31 00:00:00 108 23.9 21 28.9 |
ggplot(seoul_temper_2023_678, aes(x = m_date, y = avg_temper)) +
geom_line(col = "grey", linewidth = 2, linetype = "dashed") + geom_point(col = "red", size=3) +
labs(title = "Seoul Temperature Trends (2023.6~8)", x = "Date", y = "Temperature")
geom_line과 geom_point를 결합하여 선 그래프와 점을 동시에 표시하여 데이터 분포와 추세를 함께 시각화
linewidth로 선의 두께를 설정하고, linetype으로 선의 스타일을 설정
선 스타일 옵션으로는 "solid" (실선), "dotted" (점선), "dotdash" (점-대쉬) 등이 있음
geom_line() + geom_line() + geom_line()
geom_line() + geom_point() 처럼
ggplot2를 사용하면 각각의 그래프를 레이어 형태로 추가할 수 있다.
'데이터 분석 (with Rstudio)' 카테고리의 다른 글
[Rstudio] 회귀분석 (Regression Analysis) (1) | 2023.11.14 |
---|---|
[Rstudio] 상관분석 (Correlation Analysis) (2) | 2023.11.09 |
[Rstudio] 산점도 (scatter plot) with ggplot (1) | 2023.10.17 |
[Rstudio] 막대 그래프 (bar plot, column plot) with ggplot (0) | 2023.10.16 |
[Rstudio] 한 화면에 여러 개 복수 그래프 출력 (par, plot_grid) (0) | 2023.10.15 |