R
섹션 10. Chapter 10 ggplot2 패키지 (Youtube HelloJany)
끈기JK
2022. 9. 8. 12:21
■ ggplot2 패키지
데이터 분석의 꽃, 시각화
-선형그래프
install.packages("ggplot2")
library(ggplot2)
#airquality 속성 확인
str(airquality)
# x축은 Day 열, y축은 Temp 열로 맵핑
ggplot(airquality, aes(x=Day, y=Temp))
#산점도 그리기
ggplot(airquality, aes(x=Day, y=Temp)) +
geom_point()
# 크기를 3, 색상을 빨강으로 적용하여 산점도 그리기
ggplot(airquality, aes(x=Day, y=Temp)) +
geom_point(size = 3, color = "red")
# x축을 Day, y축을 Temp로 맵핑한 후 꺾은선그래프 그리기
ggplot(airquality, aes(x=Day, y=Temp)) +
geom_line()
# x축을 Day, y축을 Temp로 맵핑한 후 꺾은선그래프와 산점도 그리기
ggplot(airquality, aes(x=Day, y=Temp))+
geom_line()+
geom_point()
# 꺾은선그래프 색상을 빨간색과 산점도 크기를 3으로 변경하고 겹쳐 그리기
ggplot(airquality, aes(x=Day, y=Temp)) +
geom_line(color="red", size=1) +
geom_point(size=3)
# x축은 Day 열, y축은 Temp 열로 맵핑
#산점도 그리기
# 크기를 3, 색상을 빨강으로 적용하여 산점도 그리기
# x축을 Day, y축을 Temp로 맵핑한 후 꺾은선그래프 그리기
# x축을 Day, y축을 Temp로 맵핑한 후 꺾은선그래프와 산점도 그리기
# 꺾은선그래프 색상을 빨간색과 산점도 크기를 3으로 변경하고 겹쳐 그리기
-막대그래프
# 맵핑
ggplot(mtcars, aes(x = cyl))
# mtcars에서 cyl 종류별 빈도수 확인
ggplot(mtcars, aes(x = cyl)) +
geom_bar(width = 0.5)
# 빈 범주를 제외하고 cyl 종류별 빈도수 확인
ggplot(mtcars, aes(x = factor(cyl))) +
geom_bar(width = 0.5)
# cyl 종류별 gear 빈도 누적 막대그래프
ggplot(mtcars, aes(x = factor(cyl))) +
geom_bar(aes(fill = factor(gear)))
#선버스트 차트 그리기
ggplot(mtcars, aes(x = factor(cyl))) + # cyl열을 x축으로 지정
geom_bar(aes(fill = factor(gear))) + # cyl종류별 gear 빈도 파악
coord_polar() # 선버스트 차트로 변환
#원그래프 그리기
ggplot(mtcars, aes(x = factor(cyl))) + # cyl열을 x축으로 지정
geom_bar(aes(fill = factor(gear))) + # cyl 종류별 gear 빈도 파악
coord_polar(theta = "y") # 원그래프로 변환
# 맵핑
# mtcars에서 cyl 종류별 빈도수 확인
# 빈 범주를 제외하고 cyl 종류별 빈도수 확인
# cyl 종류별 gear 빈도 누적 막대그래프
#선버스트 차트 그리기
#원그래프 그리기
-상자그림 그리기
# airquality에서 Day 열을 그룹 지어, 날짜별 온도 상자 그림을 그림
ggplot(airquality, aes(x = Day, y = Temp, group = Day)) +
geom_boxplot()
# airquality에서 Temp의 히스토그램
ggplot(airquality, aes(x=Temp))+
geom_histogram(binwidth=1)
# airquality에서 Day 열을 그룹 지어, 날짜별 온도 상자 그림을 그림
# airquality에서 Temp의 히스토그램
■ 그래프의 이해를 높이는 객체 추가하기
-그래프에 선 그리기
# economics 데이터 세트 확인
str(economics)
#회귀분석으로 절편 값과 기울기 구하기
lm(psavert ~ date, data=economics)
#꺾은선그래프에 사선 그리기
ggplot(economics, aes(x=date, y=psavert))+ # x축을 date, y축울 psavert로 맵핑
geom_line()+ # 꺾은선그래프 그리기
geom_abline(intercept=12.4117258, slope=-0.0004925) # 절편 12.4117258, 기울기 -0.000544로 사선 그리기
# 꺾은선그래프에 평행선 그리기
ggplot(economics, aes(x=date, y=psavert))+ # x축을 date, y축울 psavert로 맵핑
geom_line()+ # 꺾은선그래프 그리기
geom_hline(yintercept = mean(economics$psavert)) # psavert 평균 값으로 평행선 그리기
#꺾은선 그래프에 수직선 그리기
library(dplyr) # filter() 함수 사용을 위한 패키지 로드
# 개인 저축률(psavert)이 최솟값일 때의 날짜(date)를 구해 x_inter 변수에 할당
x_inter <- filter(economics, psavert == min(economics$psavert))$date
ggplot(economics, aes(x=date, y=psavert))+ # x축을 date, y축을 psarvert로 맵핑
geom_line()+ # 꺾은선그래프 그리기
geom_vline(xintercept = x_inter) # x_inter 변수 값으로 수직선 그리기
#날짜 직접 입력
ggplot(economics, aes(x=date, y=psavert))+
geom_line()+
geom_vline(xintercept = as.Date("2005-07-01")) # "2005-07-01"을 날짜로 변환
#꺾은선그래프에 사선 그리기
# 꺾은선그래프에 평행선 그리기
# 개인 저축률(psavert)이 최솟값일 때의 날짜(date)를 구해 x_inter 변수에 할당
-텍스트 입력 및 도형 그리기
# 산점도를 그리고 데이터 레이블 입력하기
ggplot(airquality, aes(x = Day, y = Temp)) + # x축을 Day, y축을 Temp로 맵핑
geom_point() + # 산점도 그리기
geom_text(aes(label = Temp, vjust = 0, hjust = 0)) # 각 점에 Temp 값 입력하기
#산점도에 사각형 그리기
ggplot(mtcars, aes(x = wt, y = mpg)) + # x축을 wt, y축울 mpg로 맵핑
geom_point() + # 산점도 그리기
# x축 3 ~ 4, y축 12 ~ 21 위치에 하늘색(skyblue) 투명한(alpha=0.5) 사각형(rect) 그리기
annotate("rect", xmin = 3, xmax = 4, ymin = 12, ymax = 21, alpha=0.5, fill="skyblue")
#산점도에 사각형 및 화살표 그리기
ggplot(mtcars, aes(x = wt, y = mpg)) + # x축을 wt, y축울 mpg로 맵핑
geom_point() + # 산점도 그리기
# x축 3 ~ 4, y축 12 ~ 21 위치에 하늘색(skyblue) 투명한(alpha=0.5) 사각형(rect) 그리기
annotate("rect", xmin = 3, xmax = 4, ymin = 12, ymax = 21, alpha=0.5, fill="skyblue") +
# x축 2.5~3.7, y축 10~17 위치에 빨간색(red) 화살표 그리기
annotate("segment", x = 2.5, xend = 3.7, y = 10, yend = 17, color = "red", arrow=arrow())
#산점도에 사각형, 화살표, 레이블 추가하기
ggplot(mtcars, aes(x = wt, y = mpg)) + # x축을 wt, y축울 mpg로 맵핑
geom_point() + # 산점도 그리기
# x축 3 ~ 4, y축 12 ~ 21 위치에 하늘색(skyblue) 투명한(alpha=0.5) 사각형(rect) 그리기
annotate("rect", xmin = 3, xmax = 4, ymin = 12, ymax = 21, alpha=0.5, fill="skyblue") +
# x축 2.5~3.7, y축 10~17 위치에 빨간색(red) 화살표 그리기
annotate("segment", x = 2.5, xend = 3.7, y = 10, yend = 17, color = "red", arrow=arrow())+
annotate("text", x=2.5, y=10, label="point") # "point" 레이블 추가
# 산점도를 그리고 데이터 레이블 입력하기
#산점도에 사각형 그리기
#산점도에 사각형 및 화살표 그리기
#산점도에 사각형, 화살표, 레이블 추가하기
-그래프 제목, 축 제목 추가 및 디자인 적용
#막대그래프에 제목 추가하기
ggplot(mtcars, aes(x=gear))+
geom_bar()+
labs(x="기어수", y="자동차수", title="변속기 기어별 자동차수")
#테마함수 적용
#막대그래프에 제목 추가하기