matplotlib 튜토리얼
matplotlib 시작하기
수색…
비고
개요
matplotlib 는 Python 용 플로팅 라이브러리입니다. 애플리케이션에 플롯을 임베드하기위한 객체 지향 API를 제공합니다. 용량 및 구문에서 MATLAB과 유사합니다.
원래 JDHunter 가 작성했으며 적극적으로 개발 중입니다. BSD 스타일 라이센스에 따라 배포됩니다.
버전
번역 | 지원되는 Python 버전 | 비고 | 출시일 |
---|---|---|---|
1.3.1 | 2.6, 2.7, 3.x | 이전 버전 | 2013-10-10 |
1.4.3 | 2.6, 2.7, 3.x | 이전 안정 버전 | 2015-07-14 |
1.5.3 | 2.7, 3.x | 현재 안정 버전 | 2016-01-11 |
2.x | 2.7, 3.x | 최신 개발 버전 | 2016-07-25 |
설치 및 설정
matplotlib을 설치하는 방법에는 여러 가지가 있으며, 그 중 일부는 사용중인 시스템에 따라 다릅니다. 운이 좋으면 패키지 관리자를 사용하여 matplotlib 모듈과 그 종속성을 쉽게 설치할 수 있습니다.
Windows
Windows 컴퓨터에서는 pip 패키지 관리자를 사용하여 matplotlib를 설치할 수 있습니다. Windows 환경에서 pip 설정에 대한 정보는 여기 를 참고 하십시오 .
OS X
pip 패키지 관리자를 사용하여 matplotlib을 설치하는 것이 좋습니다. 시스템에 non-Python 라이브러리 중 일부 (예 : libfreetype
)를 설치해야하는 경우 homebrew 사용을 고려하십시오.
어떤 이유로 든 pip를 사용할 수 없다면 소스 에서 설치를 시도하십시오.
리눅스
python-matplotlib
패키지를 pip install matplotlib
하거나 pip install matplotlib
를 실행하여 matplotlib를 설치하는 데 시스템 패키지 관리자 또는 pip를 사용하는 것이 이상적입니다.
이것이 불가능하다면 (예를 들어, 사용중인 시스템에서 sudo 권한이없는 경우), --user
옵션을 사용하여 소스 에서 설치할 수 있습니다 : python setup.py install --user
. 일반적으로 이것은 ~/.local
matplotlib을 설치합니다.
데비안 / 우분투
sudo apt-get install python-matplotlib
페도라 / 레드햇
sudo yum install python-matplotlib
문제 해결
깨진 matplotlib을 수정하는 방법에 대한 조언은 matplotlib 웹 사이트 를 참조하십시오.
matplotlib 플롯 커스터마이징
import pylab as plt
import numpy as np
plt.style.use('ggplot')
fig = plt.figure(1)
ax = plt.gca()
# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)
# plot the test data
ax.plot( x, test_f(x) , lw = 2)
# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)
# set axis limits
ax.set_xlim(0,np.pi)
plt.draw()
# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()
명령형 대 객체 지향 구문
Matplotlib은 플로팅을위한 객체 지향 및 명령형 구문을 모두 지원합니다. 명령형 구문은 의도적으로 Matlab 구문에 매우 가깝도록 설계되었습니다.
명령형 구문 ( '상태 머신'구문이라고도 함)은 모든 명령어가 최신 그림이나 축 (Matlab과 같은)에서 작동하는 명령 문자열을 발행합니다. 반면에 객체 지향 구문은 관심있는 객체 (그림, 축 등)에 명시 적으로 작용합니다. Python 의 zen 에서 요점은 explicit이 암시 적보다 낫다는 것을 나타내며 그래서 객체 지향 구문은 좀 더 파이썬 적입니다. 그러나 명령형 구문은 Matlab의 새로운 변환 및 작은 "쓰레기"줄거리 스크립트 작성에 편리합니다. 다음은 두 가지 스타일의 예입니다.
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)
# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)
# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
두 예제 모두 아래에 표시된 것과 동일한 플롯을 생성합니다.
2 차원 어레이
축에 2 차원 (2D) 배열을 표시합니다.
import numpy as np
from matplotlib.pyplot import imshow, show, colorbar
image = np.random.rand(4,4)
imshow(image)
colorbar()
show()