일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- pytorch
- 딥러닝
- sklearn
- r
- ADsP
- Google ML Bootcamp
- 머신러닝
- 시각화
- 데이터 전처리
- scikit learn
- 데이터분석준전문가
- Python
- 통계
- 태블로
- 데이터 분석
- tableau
- SQLD
- pandas
- 코딩테스트
- 이코테
- 데이터분석
- IRIS
- 회귀분석
- 이것이 코딩테스트다
- SQL
- 자격증
- Deep Learning Specialization
- ML
- matplotlib
- Today
- Total
함께하는 데이터 분석
[Python] Matplotlib 여러 개의 그래프 한번에 그리기 본문
오늘은 matplotlib의 subplots를 이용하여
여러 개의 그래프를 한 번에 그려보도록 하겠습니다.
그래프는 이전에 그렸던 그래프들을
그대로 가져와 보겠습니다.
시작해볼게요!
라이브러리 불러오기
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]
번거로움을 없애기 위해
위의 데이터만 가지고
선 그래프, 산점도, 막대그래프, 파이 차트를 만들어보겠습니다.
세부 속성 리스트
colors = ['aqua', 'pink', 'yellow', 'lightgreen']
wedgeprops = {'width' : 0.75, 'edgecolor' : 'w', 'linewidth' : 3}
산점도와 막대그래프, 파이 차트를 그릴 때 넣어줄 colors 리스트와
파이 차트를 그릴 때 사용할 wedgeprops입니다.
단일 그래프 그리기
plt.figure(figsize = (10, 5))
plt.plot(science, people, color = 'purple', ls = '-.')
plt.grid(ls = ':')
plt.title('첫 번째 그래프')
plt.xlabel('과학탐구')
plt.ylabel('응시자 수')
plt.show()
첫 번째 그래프는 간단한 선 그래프입니다.
이제 다음 그래프인 산점도 그래프를 그려보겠습니다.
plt.figure(figsize = (10, 5))
plt.scatter(science, people, color = colors)
plt.title('두 번째 그래프')
plt.xlabel('과학탐구')
plt.ylabel('응시자 수')
plt.show()
동일한 데이터로 4개의 그래프를 한 번에 그리는 것을 보여드리기 위해
의미는 없지만 scatter를 이용하여 산점도 그래프를 그려봤습니다.
plt.figure(figsize = (10, 5))
plt.bar(science, people, color = colors, alpha = 0.4)
plt.title('세 번째 그래프')
plt.xlabel('과학탐구')
plt.ylabel('응시자 수')
plt.show()
막대그래프입니다.
이제 마지막으로 파이 차트를 그려보겠습니다.
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,
counterclock = False, colors = colors, wedgeprops = wedgeprops,
pctdistance = 0.8)
plt.title('네 번째 그래프')
plt.xlabel('과학탐구')
plt.ylabel('응시자 수')
plt.legend(loc = (1, 0.6), title = '과학탐구')
plt.show()
여기까지 앞서 그려봤던 그래프를 하나하나 그려봤습니다.
이제 plt.subplots를 이용하여 위의 4개의 그래프를 한 번에 그려보겠습니다.
여러 개의 그래프 한 번에 그리기
f, ax = plt.subplots(2, 2, figsize = (20, 15))
f.suptitle('여러개의 그래프 한번에 그리기')
ax[0, 0].plot(science, people, color = 'purple', ls ='-.')
ax[0, 0].grid(ls = ':')
ax[0, 0].set(xlabel = '과학탐구', ylabel = '응시자 수')
ax[0, 0].set_title('첫 번째 그래프')
ax[0, 1].scatter(science, people, color = colors)
ax[0, 1].set(xlabel = '과학탐구', ylabel = '응시자 수')
ax[0, 1].set_title('두 번째 그래프')
ax[1, 0].bar(science, people, color = colors, alpha = 0.4)
ax[1, 0].set(xlabel = '과학탐구', ylabel = '응시자 수')
ax[1, 0].set_title('세 번째 그래프')
ax[1, 1].pie(people, labels = science, autopct = '%.1f%%', startangle = 90,
counterclock = False, colors = colors, wedgeprops = wedgeprops,
pctdistance = 0.8)
ax[1, 1].legend(loc = (1, 0.6), title = '과학탐구')
ax[1, 1].set(xlabel = '과학탐구', ylabel = '응시자 수')
ax[1, 1].set_title('네 번째 그래프')
plt.show()
subplots에 (2, 2)를 넣어줘서 2행 2열, 총 4개의 그래프를 그려준 것입니다.
만약 6개의 그래프를 그리고 싶으시다면 (2, 3) 또는 (3, 2)로 설정해주시면 됩니다.
f.suptitle은 supertitle의 약자로 대표 타이틀입니다.
전체 제목이라고 할 수 있죠.
그다음 ax[0, 0]은 1행 1열에 그릴 그래프라는 뜻입니다.
그렇다면 ax[1, 1]는 2행 2열이겠죠.
이렇게 아주 간단하게 여러 개의 그래프를 한 번에 그릴 수 있습니다.
한 가지 주의해야 할 점은 label 다는 것이 살짝 다르다는 점입니다.
단일 그래프를 그릴 때는 plt.xlabel, plt.ylabel로 각각 달아줬지만
여기서는 ax[,].set(xlabel = '~', ylabel = '~')로 한 번에 달아줍니다.
또 각 그래프의 타이틀은 ax[,].set_title('~')로 달아줍니다.
이러한 것들만 조심한다면
여러 개의 그래프를 한눈에 보기 쉽게 그릴 수 있습니다.
감사합니다!
'데이터분석 공부 > Python' 카테고리의 다른 글
[Python] get_dummies() (0) | 2022.10.13 |
---|---|
[Python] excel, csv, tsv 불러오기 및 저장하기 (0) | 2022.09.04 |
[Python] Matplotlib violinplot 그리기 (0) | 2022.04.12 |
[Python] Matplotlib boxplot 그리기 (0) | 2022.04.12 |
[Python] Matplotlib 파이 차트 그리기 (0) | 2022.04.09 |