Matplotlib
logo
Ilustracja
Zrzut ekranu z wykresów i kodu Matplotlib
Autor John D. Hunter
Pierwsze wydanie 2003[1]
Aktualna wersja stabilna 3.11.0
(12 czerwca 2026) [±]
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 licencjami BSD, co umożliwia jego szerokie i elastyczne wykorzystanie zarówno w projektach naukowych, edukacyjnych, jak i komercyjnych[1].

Przykład: Wykres 2d

edytuj

Podstawowy kod wykresu

edytuj

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()
Przykład wykonania prostych wykresów dwóch funkcji w Python. Całość kodu z podanymi tu dodatkowymi opcjami znajduje się w opisie grafiki (trzeba kliknąć na tę grafikę, następnie kliknąć w napis Więcej szczegółów, który jest u dołu okna z opisem grafiki).

W linii 1 importowana jest biblioteka numpy i przypisany zostaje jej alias (skrót) np

W linii 2 importowany jest moduł pyplot z biblioteki Matplotlib i przypisany zostaje jej 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ą tablicę 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

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)

4. Jednakowe skalowanie osi (potrzebne np. gdy rysuje się okręgi - por. równania parametryczne)

plt.axis('equal')

5. Wpisanie wartości aktualnych zmiennych w opisach wykresu (np. w tytule, legendzie)

plt.title(f"Krzywe Lissajous a={a}, b= {b}")

Eksport do pliku typu svg

edytuj

Eksport do pliku typu svg, jaki zaleca Wikimedia Commons:

plt.savefig("Przyklad_wykresu.svg", format="svg", bbox_inches="tight")

Przykład: Wykres 3d

edytuj

Poniżej znajduje się kod rysujący Funkcję Rosenbrocka:

Funkcja Rosenbrocka narysowana za pomocą biblioteki Matplotlib (kod poniżej)


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

Przypisy

edytuj
  1. a b License – Matplotlib [online], matplotlib.org [dostęp 2025-07-05].

Linki zewnętrzne

edytuj

📚 Artikel Terkait di Wikipedia

NASAMS

NASAMS (National Advanced Surface-to-Air Missile System), znany także jako Norwegian Advanced Surface-to-Air Missile System – lądowy system obrony powietrznej

Rafał Wawrzyniak

olefins 2012: New plot capillary columns - perspectives of application in the SPME analysis of formation water 2012: Characterization of Surface of

United States Army

USASMDC/ARSTRAT), Arlington, VA Dowództwo Mobilizacji i Rozmieszczeń (Military Surface Deployment and Distribution Command – SDDC), Alexandria, VA Dowództwo Łączności

Niszczyciele projektu 56

rakietowe zostały określone w nomenklaturze NATO typem Kotlin SAM od ang. surface-to-air missile (SAM), oznaczającego rakietę klasy ziemia-powietrze. Przebudowa

2K12 Kub

[dostęp 2009-12-22]. (ros.). SA-6 (Gainful) / 2K12 Kub Tracked Medium-Range Surface-to-Air Missile Defense System [online], www.militaryfactory.com [dostęp

Punisher (sezon 2)

Jamie Lovett: 'The Punisher' Season 2 Has Started Filming, First Photos Surface. comicbook.com. [dostęp 2018-03-10]. (ang.). Punisher w bazie Filmweb Punisher

S-125

2013-08-26] . Oryx sur Twitter : „Islamic State just captured the S-125 surface-to-air missile (SAM) site positioned north of T4 airbase [online], twitter

RIM-67 Standard ER

także włoski krążownik „Vittorio Veneto”. Naval Surface-to-Air Missiles 1984 ↓, s. 1275, 1278 Naval Surface-to-Air Missiles 1984 ↓, s. 1275-1276 Modern Cruisers