Matplotlib
Zrzut ekranu z wykresów i kodu Matplotlib | |
| Autor | John D. Hunter |
|---|---|
| Pierwsze wydanie | 2003[1] |
| Aktualna wersja stabilna | 3.10.8 (13 listopada 2025) [±] |
| Język programowania | Python |
| System operacyjny | Wieloplatformowy |
| Rodzaj | Biblioteka do tworzenia wykresów |
| Licencja | Licencja Matplotlib |
| Strona internetowa | |
Matplotlib – biblioteka służąca do tworzenia wykresów i wizualizacji danych dla języka Python oraz jego rozszerzenia numerycznego NumPy. Biblioteka oferuje interfejs API „pylab”, zaprojektowany w taki sposób, aby odwzorowywać funkcjonalność znaną ze środowiska MATLAB, co ułatwia naukę użytkownikom tego narzędzia.
Matplotlib został pierwotnie napisany i rozwijany głównie przez Johna D. Huntera. Obecnie jest rozwijany przez społeczność i dostępny na licencji kompatybilnej z BSD, co umożliwia jego szerokie i elastyczne wykorzystanie zarówno w projektach naukowych, edukacyjnych, jak i komercyjnych[1].
Przykład: Wykres 2d
[edytuj | edytuj kod]Podstawowy kod wykresu
[edytuj | edytuj kod]Poniżej podano najprostszy kod do rysowania wykresów.
import numpy as np
import matplotlib.pyplot as plt
# dane
x = np.linspace(0, 12, 1000)
y1 = np.sin(x)
y2 = 0.5*np.cos(x)
# wykresy
plt.plot(x, y1, label="sin(x)")
plt.plot(x, y2, label="0.5*cos(x)")
plt.title("Wykresy funkcji")
plt.xlabel("x")
plt.ylabel("y")
plt.grid()
plt.legend()
plt.show()

W linii 1 importowana jest biblioteka numpy, przypisując jej alias (skrót) np
W linii 2 importowany jest moduł pyplot z biblioteki Matplotlib, przypisując mu alias plt(moduł to część biblioteki).
W linii 5 tworzona jest zmienna tablicowa x, która zawiera 1000 wartości zmiennej x w zakresie od 0 do 12 (wartości te można ustalać dowolnie): funkcja numpy.linspace() zwraca jednowymiarową tablica liczb zmiennoprzecinkowych.
W linii 6 tworzona jest tablica wartości funkcji y1: funkcja np.sin(x) działa na każdy element tablicy x niezależnie, obliczając wartości funkcji y1 = sin(x).
W linii 7 tworzona jest tablica wartości funkcji y2: funkcja 0.5*np.cos(x) działa na każdy element tablicy x niezależnie, obliczając wartości funkcji y1 = 0.5*cos(x)
W linii 10 funkcja plot z modułu pyplot tworzy w pamięci wykres funkcji y1.
W liniach 13, 14, 15 tworzone są: tytuł wykresu, opisy osi x i y.
W linii 17 tworzona jest siatka prostokątna wykresu.
W linii 18 tworzona jest legenda.
W linii 19 wykres i jego wszystkie elementy wyświetlane są na ekranie.
Inne parametry:
[edytuj | edytuj kod]1. Wielkość czcionki w tytule i w opisach osi x i y można zmieniać za pomocą atrybutu fontsize:
plt.title("Wykresy sin(x), cos(x), suma" , fontsize=20)
plt.xlabel("x", fontsize=14)
plt.ylabel("y", fontsize=14)
2. Opisy osi (ustalenie, co ile jednostek mają być liczby na osi) oraz wielkość czcionki
plt.xticks(np.arange(0, 12.1,3), fontsize=16) # liczby na osi x
plt.yticks(np.arange(-1, 1.1, 0.5), fontsize=16) # liczby na osi y
3. Położenie legendy oraz wielkość czcionki
plt.legend(loc="upper right", fontsize=18)
Eksport do pliku typu svg
[edytuj | edytuj kod]Eksport do pliku typu svg, jaki zaleca Wikimedia Commons:
plt.savefig("Przyklad_wykresu.svg", format="svg", bbox_inches="tight")
Przykład: Wykres 3d
[edytuj | edytuj kod]Poniżej znajduje się kod rysujący Funkcję Rosenbrocka:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1], projection='3d', auto_add_to_figure=False)
ax.azim = -128
ax.elev = 43
s = .05
X = np. arange(-2, 2.+s, s)
Y = np. arange(-1, 3.+s, s)
X, Y = np. meshgrid(X, Y)
Z = (1.-X)**2 + 100.*(Y-X*X)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, norm=LogNorm(), cmap=cm.jet)
ax.set_xlabel("x")
ax.set_ylabel("y")
fig.add_axes(ax)
plt.show()
Konkurencyjne rozwiązania
[edytuj | edytuj kod]- GNU Octave
- wxPython (moduł wx.lib.plot.py)
- Gnuplot-py
Przypisy
[edytuj | edytuj kod]- ↑ a b License – Matplotlib [online], matplotlib.org [dostęp 2025-07-05].
Linki zewnętrzne
[edytuj | edytuj kod]- Strona domowa Matplotlib Home Page
- Biblioteka NumPy. numpy.scipy.org. [zarchiwizowane z tego adresu (2012-01-20)].