1. 막대 그래프
🚀 집단별 차이를 표현할 때 막대 그래프를 주로 사용
⚡️ 수량의 많고 적음 비교, 변화된 양에 대한 일별, 월별, 연별 통계 등의 비교
🚀 가독성 면에서 항목의 개수가 적으면 가로 막대가 좋고 항목이 많으면 세로 막대가 보기 편함
📌 막대 그래프는 bar() 함수에 x축, y축 데이터를 지정하여 그림
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('../input/fine_dust.xlsx', index_col='area')
data2016 = data[2016]
data2016.head()
'''
area
Seoul 48.0
Gyeonggi 53.0
Incheon 49.0
Busan 44.0
Daegu 43.0
Name: 2016, dtype: float64
'''
1) 세로 막대
# 2016년 지역별 미세먼지 세로 막대 그래프
plt.figure(figsize=(15, 4))
plt.bar(data2016.index, data2016, color='g')
# x축에 data2016의 인덱스를, y축 데이터에 data2016 값을 지정
plt.title('2016 Fine Dust Bar Graph')
plt.xlabel('area')
plt.ylabel('micrometer')
plt.ylim(35, 55) # y축 범위를 35-55 정함
plt.grid()
plt.show()
2) 그룹 세로 막대 그래프
import numpy as np
index = np.arange(4)
# NumPy의 np.arange() 함수는 주어진 범위와 간격에 따라 균일한 값을 갖는 어레이를 반환
plt.figure(figsize=(15, 4))
df1 = data.loc['Seoul':'Busan', 2016:2019]
# (행) 서울, 경기, 인천, 부산 지역의 (열) 2016~2019년 데이터만 추출.
for year in range(2016, 2020):
chart_data = df1[year] # 연도별로 데이터 가지고 옴.
plt.bar(index, chart_data, width=0.2, label=str(year)) # 두께 0.2의 막대 그래프를 지정.
index = index + 0.2 # 출력되는 위치를 0.2씩 이동
plt.title('2016 ~ 2019 Fine Dust Group Bar Graph')
plt.xlabel('area')
plt.ylabel('micrometer')
plt.ylim(35, 55)
# x축 눈금을 가운데로 지정하기 위해 막대그래프를 마지막 위치에서 0.5 빼주고, x축 눈금 이름을 지정.
plt.xticks(index - 0.5, ['Seoul', 'Gyeonggi', 'Incheon', 'Busan'])
plt.legend()
plt.show()
💡 xticks(), yticks() 함수에 파이썬 리스트 또는 NumPy 어레이를 입력하면 눈금과 숫자 레이블이 표시
3) 그룹 누적 가로 막대 그래프
🚀 2016 ~ 2019 지역별 미세먼지 그룹 막대 그래프를 누적하여 가로 방향으로 변경하여 표현
🚀 누적 막대 그래프를 그리는 것은 기존 막대 그래프 위에 막대 그래프를 하나 더 그리는 형식
▶️ 이를 위해서는 index의 위치를 변경해야 함
▶️ 가로 방향으로 바꾸는 것은 bar() 대신 barh()를 사용하면 됨
▶️ 막대 그래프를 가로 방향으로 변경했으므로 x축 및 y축 이름, x축 및 y축 눈금도 가로 방향에 맞게 변경
# 2016 ~ 2019 지역별 미세먼지 그룹 누적 가로 막대 그래프
ndex = np.arange(4)
plt.figure(figsize=(15, 4))
df1 = data.loc['Seoul':'Busan', 2016:2019] # 서울, 경기, 인천, 부산 지역의 2016~2019년 데이터만 추출.
for year in range(2016, 2020):
chart_data = df1[year] # 연도별로 데이터 가지고 옴.
plt.barh(index, chart_data, label=str(year)) # barh() 사용
plt.title('2016~2019 Fine Dust Group Bar Graph')
plt.ylabel('area')
plt.xlabel('micrometer')
plt.xlim(30, 55)
plt.yticks(index, ['Seoul', 'Gyeonggi', 'Incheon', 'Busan'])
plt.legend()
plt.show()
[ 내용 참고 : IT 학원 강의 ]
'Programming Language > Python' 카테고리의 다른 글
[Python] Matplotlib | 히스토그램 (Histogram) (0) | 2024.03.14 |
---|---|
[Python] Matplotlib | 산점도 그래프 (0) | 2024.03.13 |
[Python] Matplotlib | 선 그래프 (0) | 2024.03.13 |
[Python] Matplotlib 라이브러리와 시각화 옵션 [제목, 범례, 색상, 축 이름, 선 모양, 범위 지정], 내장 시각화 옵션 (0) | 2024.03.13 |
[Python] Pandas | 컬럼 삭제 및 생성, 컬럼 이름 변경, 데이터 형변환, 데이터 병합, 데이터 그룹핑 (0) | 2024.03.13 |