Python-oppimateriaali (CHEM-A2600)
matplotlib.pyplot-moduuli
Matplotlib-kuvaajia piirrettäessä ohjelmaan pitää aina tuoda matplotlib.pyplot-moduuli import-käskyllä. Matplotlibiä käytettäessä tarvitaan useimmiten myös NumPy-moduuli. Tällä kurssilla nämä moduulit tuodaan aina seuraavilla käskyllä, jolloin voidaan käyttää lyhenteitä np ja plt:
import numpy as np import matplotlib.pyplot as plt
Yksinkertainen kuvaaja oletusasetuksilla
Aloitetaan piirtämällä yksinkertainen kuvaaja funktiolle f(x) = 2x oletusasetuksia käyttäen
import numpy as np import matplotlib.pyplot as plt # Luodaan datat funktiolle f(x) = 2x X = np.linspace(1, 100, 100) Y = X * 2 # Luodaan kuvaaja datoja X ja Y käyttäen plt.plot(X, Y) # Näytetään kuvaaja plt.show()
Lopputulos:
Kuvaajan oletusasetuksien muuttaminen
matplotlib.pyplot.plot-funktion parametrejä muokkaamalla voi vaikuttaa kuvaajan ulkonäköön. Lyhyt yhteenveto parametrien mahdollisista arvoista seuraavassa luvussa.
import numpy as np import matplotlib.pyplot as plt # Luodaan datat X = np.linspace(1, 100, 10) Y = X * 2 # Luodaan kuvaaja # - Vaihdetaan tyyliksi pisteet ('o') # - Vaihdetaan väri color-parametrilla punaiseksi plt.plot(X, Y, 'o', color = 'red') # Näytetään kuvaaja plt.show()
Lopputulos:
Akseleiden muokkaaminen, selitteiden lisääminen ja kuvien tallentaminen
Muokataan esimerkkikuvaajaa edelleen
import numpy as np import matplotlib.pyplot as plt # Luodaan datat X = np.linspace(1, 100, 100) Y = X * 2 # Luodaan katkoviiva-kuvaaja (mukana väri ja teksti 'f(x) = 2x' selitettä varten) plt.plot(X, Y, '--', color = 'red', label = 'f(x) = 2x') # Nimetään akselit plt.xlabel('x') plt.ylabel('y') # Asetetaan akselivali plt.xlim(0, 100) plt.ylim(0, 200) # Asetetaan akselin numerot (ticks) plt.xticks(np.arange(0, 101, 10)) plt.yticks(np.arange(0, 201, 20)) # Lisätään selite (legend). Se käyttää plot-funktion label-parametriä. plt.legend(loc = 'upper left') # Lisätään otsikko (title) plt.title('Hieno kuvaaja') # Tallennetaan kuvaaja myös png ja PDF-muodossa plt.savefig("kuvaaja.png", dpi = 300) plt.savefig("kuvaaja.pdf") # Lopuksi piirretaan kuvaaja plt.show()
Lopputulos:
Kuvaajan voi siis tallentaa tiedostoon plt.savefig-funktiolla. Kuvaajat tallentuvat samaan hakemistoon, missä ohjelma ajetaan (paitsi jos annat plt.savefig-funktiolle kokonaisen tiedostopolkun, esimerkiksi "C:\Users\pipetti\hienokuva.pdf").
Huom! plt.savefig-funktiota pitää kutsua ennen plt.show-funktiota. Matplotlib päättelee tiedoston tyypin sen päätteestä. Tyypillisiä vaihtoehtoja ovat pdf, eps ja png (png-kuvien tarkkuutta voi nostaa dpi-parametrilla).
Useampi kuvaaja samassa akselistossa
Matplotlibillä on helppo piirtää useita kuvaajia samaan akselistoon. Riittää, kun kutsuu plt.plot-funktiota useamman kerran:
import numpy as np import matplotlib.pyplot as plt # Luodaan kolmet XY-datat X1 = np.linspace(1, 100, 100) Y1 = X1 * 2 X2 = np.linspace(1, 100, 100) Y2 = X2 * 4 X3 = np.linspace(1, 100, 100) Y3 = X3 * 6 # Luodaan kolme kuvaajaa # Huomaa lyhennetty merkintä, jossa yhdistetty väri ja viivan tyyppi plt.plot(X1, Y1, 'b-', label = 'f(x) = 2x') plt.plot(X2, Y2, 'r--', label = 'f(x) = 4x') plt.plot(X3, Y3, 'g-.', label = 'f(x) = 6x') # Asetetaan akselien rajat ja luodaan selite plt.xlim(0, 100) plt.ylim(0, 600) plt.legend(loc = 'upper left') # Näytetään kuvaajat plt.show()
Lopputulos:
Muuntyyppiset kuvaajat
Matplotlib.pyplot-moduuli sisältää valtavasti erilaisia toiminnallisuuksia. Erityyppisiä kuvaajia on lukuisia. Hyödyllisiä kuvaajatyyppejä ovat varmasti esimerkiksi pyplot.scatter (XY-pistekuvaaja) ja pyplot.bar (pylväsdiagrammi).
Lisämateriaalia
- https://matplotlib.org/stable/gallery/index.html
- https://matplotlib.org/stable/api/pyplot_summary.html
- https://github.com/rougier/matplotlib-tutorial
Tehtävä 4.7.1
Tehtävä 4.7.2