Python_AI and Bigdata
현업에서 자주 쓰는 시각화(matplotlib.pyplot)
렁다이쿤
2022. 9. 14. 00:57
728x90
현업에서 자주 쓰는 시각화에 관해 포스팅합니다.
from matplotlib import pyplot as plt
먼저, 히스토그램!
변수 각각이 어떤 분포를 띠고 있는지 보고 싶을 경우, 혹은 빈도수가 어떻게 나뉘는 지 보고 싶을 경우 사용됩니다.
역시나 iris데이터로 시작합니다
plt.hist(iris["Sepal.Length"])
Out[6]:
(array([ 9., 23., 14., 27., 16., 26., 18., 6., 5., 6.]),
array([4.3 , 4.66, 5.02, 5.38, 5.74, 6.1 , 6.46, 6.82, 7.18, 7.54, 7.9 ]),
<BarContainer object of 10 artists>)

다음으로 plot입니다. plot은 제가 보통 쓰는 방식으로 포스팅 되었고, 각자에게 맞는 방식을 찾으시길 바랍니다.
plt.figure(figsize=(15,8)) # plot size를 설정하는 방법으로(가로, 세로) 입니다.
plt.plot(iris["Sepal.Length"])
plt.plot(iris["Sepal.Length"], "ro") # 빨간색 점들을 찍어줍니다.
plt.xlabel("X-axis") # x축 label
plt.ylabel("Y-axis") # y축 label
plt.title("Title Name") # 타이틀
# title을 한글로 쓰시고 싶으시면 아래 코드를 플롯하기 전에 실행시키면 됩니다. 저는 개인적으로영어로 적는 것을 추천!
"""
import matplotlib
matplotlib.rcParams['font.family'] ='Malgun Gothic'
matplotlib.rcParams['axes.unicode_minus'] =False
"""

저는 다음과 같이 catter와 line을 모두 함께 출력하는 것을 선호합니다. 데이터가 밀집 되어있는 경우에는 figsize에서 세로 길이를 늘려서 꼼꼼히 데이터를 확인합니다.
다음으로, 두개의 플롯을 동시에 출력하고 싶다면?
plt.plot(iris["Sepal.Length"], 'cs--', label = 'graph1') # cyan색, square 마커
plt.plot(iris["Sepal.Width"], 'rx:', label = 'graph2') # 빨간색, x 마커
plt.legend() # 왼쪽 위에 표시된 legend 생성
plt.show() # 플롯 보여주기

한 그래프 말고 여러 그래프를 한 플롯에 출력하고 싶다면?
plt.figure(figsize=(15,8)) # plot figsize 설정
plt.subplot(221) # 2x2 플롯 중 1번째 플롯
plt.plot(iris["Sepal.Length"])
plt.title("S_L")
plt.subplot(222) # 2x2 플롯 중 2번째 플롯
plt.plot(iris["Sepal.Width"])
plt.title("S_W")
plt.subplot(223) # 2x2 플롯 중 3번째 플롯
plt.plot(iris["Petal.Length"])
plt.title("P_L")
plt.subplot(224) # 2x2 플롯 중 4번째 플롯
plt.plot(iris["Petal.Width"])
plt.title("P_W")

이제 여러 그래프를 출력했으니, 그래프를 저장하는 방법을 알아봐야겠죠?
path = "경로/"
# 이렇게 path를 따로 저장하는 이유는 아래 좋은 꿀팁이 있기 때문!
# path 지정하면 가독성이 좋고 코드가 깔끔해져요.
plt.plot(iris["Sepal.Length"])
plt.savefig(path + "플롯이름.png")
저렇게 하면 지정된 path에 저장이됩니다.
변수가 많은데, 모든 변수의 플롯을 하나하나 다 저장하기 힘드니 for문을 써서 플롯을 저장하는 방법을 알아봅시다!
col = iris.columns[:4]
col
Out[9]:
Index(['Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width'], dtype='object')
In [10]:
for i in col:
print(i)
Sepal.Length
Sepal.Width
Petal.Length
Petal.Width
In [11]:
# iris에 관한 4가지 변수를 모두 지정된 플롯으로 자동 저장하는 방법
for i in col:
plt.plot(iris[i])
plt.savefig(path + i + ".png")
여기까지가 현업에서 자주 쓰는 시각화 방법이었습니다.
이 외에도 많은 시각화 방법이 있지만 이정도만 익히고, 필요시 고급 스킬을 구글링하는 방법을 추천드립니다!