본문 바로가기
  • 🦄 창민이 개발일지
데이터 분석

데이터 처리를 위한 Matplotlib

by 창민이 개발일지 2022. 6. 17.

데이터 처리를 위한 Matplotlib

import matplotlib.pyplot as plt

▣ Matplotlib

Matplotlib은 데이터를 차트(chart)나 플롯(plot)으로 시각화(visulaization)하는 패키지
데이터 분석에서 Matplotlib은 데이터 분석 이전에 데이터 이해를 위한 시각화나, 데이터 분석 후에 결과를 시각화하기 위해서 사용

마커

선 스타일

선 스타일에는 실선(solid), 대시선(dashed), 점선(dotted), 대시-점선(dash-dit) 이 있다. 지정 문자열은 다음과 같다.

라인 플롯 그리기

plot( [x, y] )은 라인 플롯을 그리는 기능을 수행.
plot() X축과 Y축의 값을 기재함.
show() : 그림을 표시하는 시각화 함수.

In [75]:
plt.plot(np.random.normal(size=[10]),np.random.normal(size=[10]),"o")
plt.show()
In [76]:
font1 = {'size': 24, 'color':  'black'}
font2 = {'size': 18, 'weight': 'bold', 'color':  'darkred'}
plt.title("test")

plt.plot([1,2,3,4],[2,3,4,6],'b.')
plt.plot([1,2,3,4],[2,3,4,6])
plt.plot([1,2,3,4],[2,4,1,6],"o-") # r : red, b : blue, g : green, y : yellow, o : orange
plt.plot([1,2,3,4],[2,4,1,6],"r--")
plt.xlabel("x",fontdict=font1)
plt.ylabel("y",fontdict=font2)
plt.legend(["Expectation","Growth"]) # legned : (지도.도표등의)범례
plt.show()
In [15]:
plt.figure(figsize=(15,7))
plt.subplot(1,2,1)
plt.hist(np.random.normal(size=1000,scale=10),bins=20)
plt.subplot(1,2,2)
a = np.arange(30)
b = np.arange(30)+3*np.random.randn(30)
plt.scatter(a,b)
plt.plot(a,b,'r')
plt.show()
In [78]:
data = np.random.randn(30).cumsum()
plt.plot(data,'k--')
plt.plot(data,'y-',drawstyle='steps-post')
plt.show()

그래프 이미지로 저장

  • show()을 먼저 쓰면 저장 안됨
In [79]:
plt.plot(data,'k--')
plt.savefig('flg2.png',dpi=300)
plt.show()
plt.close()

수직선 및 수평선 추가

In [80]:
array = np.random.uniform(0,10,20)
plt.plot(array)

# 수직선 표시
plt.axvline(x=5,color='r')

# 수평선 표시
plt.axhline(y=5,color='g')
plt.show()

이미지 파일 열기

In [81]:
import cv2

컬러로 보기

In [82]:
image = cv2.imread('/jupyterNotebook/test_images/marvel.jpg',cv2.IMREAD_COLOR)
image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
In [83]:
plt.imshow(image)
plt.axis("off")
plt.show()

흑백으로 보기

In [84]:
image = cv2.imread('/jupyterNotebook/test_images/marvel.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(image,'gray')
plt.axis('off')
plt.show()

열 감지 색으로 보기

In [85]:
image = cv2.imread('/jupyterNotebook/test_images/marvel.jpg',cv2.IMREAD_GRAYSCALE)
plt.figure(figsize=(10,5))
plt.imshow(image,'jet')
plt.axis('off')
plt.colorbar()
plt.show()
 

여러개 그래프 보여주기

In [86]:
tips = sns.load_dataset('tips')
In [94]:
plt.figure

plt.subplot(1,2,1)
plt.plot(tips['total_bill'])
plt.subplot(1,2,2)
sns.countplot(x='sex',data=tips)
plt.show()

x label 기울이기

In [95]:
sns.countplot(x='sex',data=tips)
plt.xticks(rotation=45)
plt.show()