수색…


비고

개요

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과 같은)에서 작동하는 명령 문자열을 발행합니다. 반면에 객체 지향 구문은 관심있는 객체 (그림, 축 등)에 명시 적으로 작용합니다. Pythonzen 에서 요점은 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()

matplotlib로 2 차원 배열 표시



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow