일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tableau
- 머신러닝
- pandas
- 딥러닝
- ADsP
- SQLD
- 회귀분석
- 데이터분석
- IRIS
- 코딩테스트
- pytorch
- 파이썬
- 데이터 분석
- 데이터 전처리
- Deep Learning Specialization
- scikit learn
- ML
- 태블로
- SQL
- 자격증
- 통계
- matplotlib
- 데이터분석준전문가
- r
- Python
- 시각화
- sklearn
- 이것이 코딩테스트다
- 이코테
- Google ML Bootcamp
- Today
- Total
함께하는 데이터 분석
[Python] Matplotlib 막대그래프 그리기 본문
오늘은 matplotlib을 이용하여
막대그래프를 그려보겠습니다.
저번 시간에 활용했던 수능 과학탐구 응시자 수에서
가장 최근인 2022년 데이터를 활용하겠습니다.
라이브러리 불러오기
import matplotlib.pyplot as plt
plt.rc('font', family = 'AppleGothic') # mac
# plt.rc('font', family = 'Malgun Gothic') # window
plt.rc('font', size = 12)
plt.rc('axes', unicode_minus = False) # -표시 오류 잡아줌
수능 과학탐구 응시자 수 리스트
science = ['physics', 'chemistry', 'life', 'earth']
people = [6.8, 8.0, 14.7, 14.9] # 단위 : 만명
science에 물리, 화학, 생명과학, 지구과학을 넣어줬고
people에 응시자 수 를 넣어줬습니다.
막대그래프 그리기
plt.figure(figsize = (10, 5))
plt.bar(science, people)
plt.show()
plt.bar에 science와 people을 넣어줘서
그래프를 그렸습니다.
막대그래프 색깔 변경하기
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = 'green')
plt.show()
plt.bar의 color인자에 green을 넣으면
위와 같이 색깔이 초록색을 바뀐 것을 볼 수 있습니다.
이번에는 막대마다 색깔을 달리 해주겠습니다.
colors = ['red', 'blue','aqua', 'pink']
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = colors)
plt.show()
colors라는 리스트에 red, blue, aqua, pink를 넣었습니다.
그후 color = colors를 해주면 위와 같이 완성됩니다.
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = colors, alpha = 0.4)
plt.show()
위처럼 alpha에 0.4를 넣어주면 투명도가 설정됩니다.
막대그래프 축 조절
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = colors, alpha = 0.4)
plt.ylim(6, 15)
plt.show()
plt.ylim을 이용하여 y축의 범위를 6~15로 설정했습니다.
막대그래프 넓이 조절
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = colors, alpha = 0.4, width = 0.3)
plt.show()
plt.bar에 width인자를 활용하여 넓이를 조절했습니다.
이번에는 bar name을 회전시켜보겠습니다.
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = colors, alpha = 0.4, width = 0.3)
plt.xticks(rotation = 45)
plt.show()
plt.xticks에 rotation = 45를 넣어서
45도를 기울여줬습니다.
위의 데이터는 상관이 없지만
bar의 개수가 많아지면 bar name이 겹쳐서
안 보이는 것을 해결하는데 도움이 됩니다.
수평 막대그래프 그리기
plt.figure(figsize = (10, 5))
plt.barh(science, people, color = colors, alpha = 0.4)
plt.show()
막대그래프를 수평으로 그리는 것은 간단합니다.
plt.bar에서 plt.barh로 바꿔주면 됩니다.
h는 horizontal의 약자입니다.
이제 한번에 투명도 설정과 bar name을 회전시켜보겠습니다.
plt.figure(figsize = (10, 5))
plt.barh(science, people, color = colors, alpha = 0.4)
plt.xlim(6, 15)
plt.yticks(rotation = 45)
plt.show()
이번에는 수평막대그래프이므로 xlim과 yticks를 사용해야 합니다.
이제 마지막으로 막대그래프에 값을 텍스트로 추가해보겠습니다.
막대그래프에 텍스트 추가
plt.figure(figsize = (10, 5))
bar1 = plt.bar(science, people, color = colors, alpha = 0.4)
plt.xticks(rotation = 45)
for i, j in enumerate(bar1) :
plt.text(i, j.get_height(), people[i])
plt.show()
저번과 마찬가지로 enumerate함수를 사용했습니다.
이번에도 값이 똑바로 옆에 쓰여있죠.
텍스트를 조금 위와 가운데로 이동시키겠습니다.
plt.figure(figsize = (10, 5))
bar1 = plt.bar(science, people, color = colors, alpha = 0.4)
plt.xticks(rotation = 45)
plt.ylim(4, 16)
for i, j in enumerate(bar1) :
plt.text(i, j.get_height() + 0.3, people[i], ha = 'center')
plt.show()
텍스트를 y축 방향으로 0.3만큼 올리고
ha인자를 활용하여 center에 위치시켰습니다.
마지막으로 텍스트를 bar색깔과 같은 색깔로 바꿔주겠습니다.
plt.figure(figsize = (10, 5))
bar1 = plt.bar(science, people, color = colors, alpha = 0.4)
plt.xticks(rotation = 45)
plt.ylim(4, 16)
for i, j in enumerate(bar1) :
plt.text(i, j.get_height() + 0.3, people[i], ha = 'center', color = colors[i])
plt.show()
아까 bar색깔을 입힐 때 사용한 colors리스트를 이용하여
plt.text의 color인자에 colors를 넣어줬습니다.
하지만 이때는 colors에 인덱스를 넣어야 하는 것에 주의하시기 바랍니다.
다음에는 누적 막대그래프로 찾아뵙겠습니다!
'데이터분석 공부 > Python' 카테고리의 다른 글
[Python] Matplotlib 다중 막대그래프 (0) | 2022.04.08 |
---|---|
[Python] Matplotlib 누적 막대그래프 (0) | 2022.04.05 |
[Python] Matplotlib 산점도 그래프 그리기 (0) | 2022.03.31 |
[Python] Matplotlib 그래프에 텍스트 삽입 (0) | 2022.03.30 |
[Python] Matplotlib 평면내 여러 개의 선 그래프 그리기 (0) | 2022.03.29 |