Alikuvioiden Luominen
subplots()-kirjaston pyplot-funktio on tarkoitettu juuri tähän tarkoitukseen. Sitä käytettiin aiemmin kankaan luomiseen ensimmäisessä osiossa, ja nyt sitä tarkastellaan yksityiskohtaisemmin.
Rivimäärä ja sarakemäärä
Tämän funktion tärkeimmät argumentit ovat nrows ja ncolumns, jotka määrittävät alikuvioiden ruudukon rivien ja sarakkeiden määrän. Oletuksena molemmat ovat 1, jolloin saat yhden kuvan (Axes).
Funktio subplots() palauttaa Figure-olion sekä joko yhden Axes-olion tai taulukon Axes-olioita ruudukon koosta riippuen.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
2 x 2 aliplottiristikko luotiin.
Koska aliplotteja on useita, subplots palauttaa taulukon Axes-olioita, jotka yleensä tallennetaan muuttujaan nimeltä axs (yksikkömuoto ax on yhdelle kuvalle).
Tässä tapauksessa axs on kaksiulotteinen taulukko, joten tarvitset sekä rivin että sarakkeen indeksin päästäksesi tiettyyn aliplottiin.
12345678910111213141516import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
Ensimmäisellä rivillä (rivi 0) on kaksi viivakuvaajaa, ja toisella rivillä (rivi 1) on kaksi hajontakuvaajaa.
Koska jokainen kuvaaja sijoitetaan erilliseen alikuvaajaan, plt.plot()- tai plt.scatter()-funktioita ei voi käyttää suoraan. Oikea tapa on kutsua vastaavaa metodia jokaiselle yksittäiselle Axes-oliolle.
Muuntaminen 1D-taulukoksi
On myös mahdollista käyttää .ravel()-metodia muuntaaksesi kaksiulotteisen Axes-taulukon yksiulotteiseksi yhtenäiseksi litistetyksi taulukoksi:
12345678910111213141516171819import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
2x2-taulukossa axs.ravel() muuntaa sen yksiulotteiseksi taulukoksi, jossa on neljä alkiota.
Akselin jakaminen
subplots()-funktiolla on myös sharex- ja sharey-parametrit. Ne määrittävät, jaetaanko x- tai y-akseli aliplottien kesken. Molemmat ovat oletuksena False.
12345678910111213141516171819import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Asetus sharex=True jakaa x-akselin kaikkien alipohjien kesken, mikä on hyödyllistä tässä, koska kaikissa alipohjissa käytetään samoja x-akselin arvoja.
Voit myös asettaa sharex tai sharey arvoksi 'row' jakaaksesi akselin kunkin alipohjarivin sisällä, tai 'col' jakaaksesi sen kunkin alipohjasarakkeen sisällä.
Kuten tavallista, voit tutustua lisää
subplots() dokumentaatioon halutessasi.
Swipe to start coding
- Käytä oikeaa funktiota alikuvioiden ruudukon luomiseen.
- Ruudukossa tulee olla 3 riviä ja 1 sarake (määritä kaksi ensimmäistä parametria).
- Määritä oikeanpuoleisin avainsana-argumentti niin, että x-akseli jaetaan kaikissa alikuvioissa.
- Tallenna alikuvioiden luontifunktion tulos
fig- jaaxs-muuttujiin (vasemmalta oikealle). - Sijoita ensimmäinen viivakaavio
data_linearruudukon ensimmäiselle riville (rivi0). - Sijoita toinen viivakaavio
data_squaredruudukon toiselle riville (rivi1). - Sijoita kolmas viivakaavio
data_expruudukon kolmannelle riville (rivi2).
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.85
Alikuvioiden Luominen
Pyyhkäise näyttääksesi valikon
subplots()-kirjaston pyplot-funktio on tarkoitettu juuri tähän tarkoitukseen. Sitä käytettiin aiemmin kankaan luomiseen ensimmäisessä osiossa, ja nyt sitä tarkastellaan yksityiskohtaisemmin.
Rivimäärä ja sarakemäärä
Tämän funktion tärkeimmät argumentit ovat nrows ja ncolumns, jotka määrittävät alikuvioiden ruudukon rivien ja sarakkeiden määrän. Oletuksena molemmat ovat 1, jolloin saat yhden kuvan (Axes).
Funktio subplots() palauttaa Figure-olion sekä joko yhden Axes-olion tai taulukon Axes-olioita ruudukon koosta riippuen.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
2 x 2 aliplottiristikko luotiin.
Koska aliplotteja on useita, subplots palauttaa taulukon Axes-olioita, jotka yleensä tallennetaan muuttujaan nimeltä axs (yksikkömuoto ax on yhdelle kuvalle).
Tässä tapauksessa axs on kaksiulotteinen taulukko, joten tarvitset sekä rivin että sarakkeen indeksin päästäksesi tiettyyn aliplottiin.
12345678910111213141516import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
Ensimmäisellä rivillä (rivi 0) on kaksi viivakuvaajaa, ja toisella rivillä (rivi 1) on kaksi hajontakuvaajaa.
Koska jokainen kuvaaja sijoitetaan erilliseen alikuvaajaan, plt.plot()- tai plt.scatter()-funktioita ei voi käyttää suoraan. Oikea tapa on kutsua vastaavaa metodia jokaiselle yksittäiselle Axes-oliolle.
Muuntaminen 1D-taulukoksi
On myös mahdollista käyttää .ravel()-metodia muuntaaksesi kaksiulotteisen Axes-taulukon yksiulotteiseksi yhtenäiseksi litistetyksi taulukoksi:
12345678910111213141516171819import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
2x2-taulukossa axs.ravel() muuntaa sen yksiulotteiseksi taulukoksi, jossa on neljä alkiota.
Akselin jakaminen
subplots()-funktiolla on myös sharex- ja sharey-parametrit. Ne määrittävät, jaetaanko x- tai y-akseli aliplottien kesken. Molemmat ovat oletuksena False.
12345678910111213141516171819import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Asetus sharex=True jakaa x-akselin kaikkien alipohjien kesken, mikä on hyödyllistä tässä, koska kaikissa alipohjissa käytetään samoja x-akselin arvoja.
Voit myös asettaa sharex tai sharey arvoksi 'row' jakaaksesi akselin kunkin alipohjarivin sisällä, tai 'col' jakaaksesi sen kunkin alipohjasarakkeen sisällä.
Kuten tavallista, voit tutustua lisää
subplots() dokumentaatioon halutessasi.
Swipe to start coding
- Käytä oikeaa funktiota alikuvioiden ruudukon luomiseen.
- Ruudukossa tulee olla 3 riviä ja 1 sarake (määritä kaksi ensimmäistä parametria).
- Määritä oikeanpuoleisin avainsana-argumentti niin, että x-akseli jaetaan kaikissa alikuvioissa.
- Tallenna alikuvioiden luontifunktion tulos
fig- jaaxs-muuttujiin (vasemmalta oikealle). - Sijoita ensimmäinen viivakaavio
data_linearruudukon ensimmäiselle riville (rivi0). - Sijoita toinen viivakaavio
data_squaredruudukon toiselle riville (rivi1). - Sijoita kolmas viivakaavio
data_expruudukon kolmannelle riville (rivi2).
Ratkaisu
Kiitos palautteestasi!
single