파이썬 plt.show() 함수 의미, 역할
이번 글에서는 파이썬 matplotlib에서 그래프를 그리기 위한 코드를 작성한 뒤,
마지막에 선언하게 되는 plt.show() 함수의 의미와 역할에 대해서 살펴보고,
여러 번 사용되는 경우의 차이점에 대해서도 다루어보도록 하겠습니다.
우선, scatter plot을 만들어보기 위한 임의의 데이터를 생성하겠습니다.
import matplotlib.pyplot as plt
import numpy as np
x1 = np.random.random(50)
y1 = np.random.random(50)
x2 = np.random.random(50) + 1
y2 = np.random.random(50) + 1
x3 = np.random.random(50) + 2
y3 = np.random.random(50) + 2
x1, y1은 0~1 범위 내에서, x2, y2는 1~2 범위 내에서, x3, y3는 2~3 범위 내에서
무작위로 추출된 점들의 좌표입니다.
plt.show() 기본형 : 1회 사용
그래프 내에 x축 범위, y축 범위를 고정하고 제목을 설정한 뒤,
x1과 y1 사이, x2와 y2 사이, 그리고 x3와 y3 사이의 산점도를
색을 다르게 지정하여 한 그래프 내에 동시에 표현해보도록 하겠습니다.
# plt.show() 마지막에 1회
plt.xlim(-0.2, 3.2)
plt.ylim(-0.2, 3.2)
plt.title('scatter graph', size = 13)
plt.scatter(x1, y1, color = 'blue')
plt.scatter(x2, y2, color = 'orange')
plt.scatter(x3, y3, color = 'pink')
plt.show()
plt.show()를 이처럼 마지막에 1회만 작성한 경우에는
figure 내의 x축, y축, 제목, 범례 등의 속성이 공유되며,
여러 그래프가 같은 figure 내에 동시에 그려지게 됩니다.
plt.show() 여러 개 사용
plt.show()를 선언하게 되면 figure가 초기화 되어,
x축, y축, 제목, 범례 등 figure 속성 정보도 같이 사라지게 되며,
다음 그래프부터는 새로운 figure에 그리게 됩니다.
3개의 scatter plot을 다른 figure에 따로 그려보도록 하겠습니다.
# plt.show() for문 순회로 여러번 실행
x = [x1, x2, x3]
y = [y1, y2, y3]
colors = ['blue', 'orange', 'pink']
for i in range(3):
plt.xlim(-0.2, 3.2)
plt.ylim(-0.2, 3.2)
plt.title('scatter graph%d'%(i+1), size = 13)
plt.scatter(x[i], y[i], color = colors[i])
plt.show() # 총 3회 실행
x축, y축 범위도 for 문 내에서 다시 선언되고 있기에,
세 그래프 모두에서 유지되고 있습니다.
제목의 숫자 부분이 포맷팅 형태에 맞추어 바뀌고 있으며,
각 그래프마다 독립적인 figure 내에 따로 출력되고 있습니다.
이번에는 x축, y축, 제목 속성 선언을 반복하지 않고 그래프를 따로 그려보겠습니다.
x = [x1, x2, x3]
y = [y1, y2, y3]
colors = ['blue', 'orange', 'pink']
# x축, y축 범위 및 제목 : 초기화된 figure에 미반영
plt.xlim(-0.2, 3.2)
plt.ylim(-0.2, 3.2)
plt.title('scatter graph%d'%(i+1), size = 13)
for i in range(3):
plt.scatter(x[i], y[i], color = colors[i])
plt.show()
첫 그래프는 제목 출력 및 x축, y축의 범위가 -0.2 ~ 3.2로 지정되었지만,
plt.show() 선언 이후 figure의 속성들이 재지정되지 않아
두번째와 세번째 그래프에서는 x축, y축, 제목이 지정되지 않은 형태의 그래프가
출력된 것을 확인할 수 있었습니다.
이 외에도 plt.show() 함수를 마지막에 선언해주게되면 속성 관련 출력 메시지 등이
생략되어 그래프만 깔끔하게 출력된 결과를 받을 수 있다는 장점이 있습니다.
'Python > Matplotlib' 카테고리의 다른 글
[Matplotlib] 파이썬 그래프 범례(legend) 크기, 위치, 글자 색 설정법 (1) | 2022.01.24 |
---|---|
[Matplotlib] 파이썬 선 그래프 색상, 점선, 마커, 여러 개 : plt.plot (0) | 2022.01.07 |
[Matplotlib] 파이썬 막대 그래프 색깔, 테두리, 폭 지정 (0) | 2022.01.05 |