Szukaj…


Uwagi

Przegląd

matplotlib to biblioteka kreśląca dla Pythona. Zapewnia obiektowe interfejsy API do osadzania wykresów w aplikacjach. Jest podobny do MATLAB pod względem pojemności i składni.

Został pierwotnie napisany przez JDHunter i jest aktywnie rozwijany. Jest rozpowszechniany na licencji w stylu BSD.

Wersje

Wersja Obsługiwane wersje Python Uwagi Data wydania
1.3.1 2.6, 2.7, 3.x Starsza stabilna wersja 2013-10-10
1.4.3 2.6, 2.7, 3.x Poprzednia stabilna wersja 2015-07-14
1.5.3 2.7, 3.x Aktualna wersja stabilna 11.01.2016
2.x 2.7, 3.x Najnowsza wersja programistyczna 2016-07-25

Instalacja i konfiguracja

Istnieje kilka sposobów instalacji matplotlib, z których niektóre będą zależeć od używanego systemu. Jeśli masz szczęście, będziesz mógł użyć menedżera pakietów, aby łatwo zainstalować moduł matplotlib i jego zależności.

Windows

Na komputerach z systemem Windows możesz spróbować użyć menedżera pakietów pip, aby zainstalować matplotlib. Zobacz tutaj, aby uzyskać informacje na temat konfigurowania pip w środowisku Windows.

OS X

Zaleca się użycie menedżera pakietów pip do zainstalowania programu matplotlib. Jeśli chcesz zainstalować niektóre biblioteki inne niż Python w swoim systemie (np. libfreetype ), rozważ użycie homebrew .

Jeśli nie możesz użyć pip z jakiegokolwiek powodu, spróbuj zainstalować ze źródła .

Linux

W idealnym przypadku do zainstalowania matplotlib należy użyć menedżera pakietów systemowych lub pip, instalując pakiet python-matplotlib lub uruchamiając pip install matplotlib .

Jeśli nie jest to możliwe (np. Nie masz uprawnień sudo na --user komputerze), możesz zainstalować ze źródła, używając opcji --user : python setup.py install --user . Zazwyczaj instaluje to matplotlib w ~/.local .

Debian / Ubuntu

sudo apt-get install python-matplotlib

Fedora / Red Hat

sudo yum install python-matplotlib

Rozwiązywanie problemów

Zobacz stronę matplotlib, aby uzyskać porady dotyczące naprawy uszkodzonego matplotlib.

Dostosowywanie wykresu 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()

wprowadź opis zdjęcia tutaj

# 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()

wprowadź opis zdjęcia tutaj

Składnia imperatywna vs. obiektowa

Matplotlib obsługuje zarówno drukowanie obiektowe, jak i imperatywną. Składnia imperatywna została celowo zaprojektowana tak, aby była bardzo zbliżona do składni Matlaba.

Składnia imperatywna (czasami nazywana składnią „maszyna-stan”) wydaje ciąg poleceń, z których wszystkie działają na najnowszej figurze lub osi (jak Matlab). Z drugiej strony składnia obiektowa wyraźnie działa na interesujące obiekty (figurę, oś itp.). Kluczowy punkt w zen Pythona stwierdza, że jawne jest lepsze niż niejawne, więc składnia obiektowa jest bardziej pythoniczna. Jednak imperatywna składnia jest wygodna w przypadku nowych konwersji z Matlaba i pisania małych, „wyrzucanych” skryptów fabuły. Poniżej znajduje się przykład dwóch różnych stylów.

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)

Oba przykłady dają ten sam wykres, który pokazano poniżej.

wprowadź opis zdjęcia tutaj

Tablice dwuwymiarowe (2D)

Wyświetl tablicę dwuwymiarową (2D) na osiach.

import numpy as np
from matplotlib.pyplot import imshow, show, colorbar

image = np.random.rand(4,4)
imshow(image)
colorbar()
show()

Wyświetl tablicę dwuwymiarową (2D) za pomocą Matplotlib



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow