Matplotlib.pyplot.subplots() i Python
Matplotlib er et bibliotek i Python og det er en numerisk-matematisk utvidelse for NumPy bibliotek. Pyplot er et tilstandsbasert grensesnitt til en Matplotlib-modul som gir et MATLAB-lignende grensesnitt. subplots()> funksjonen i Python forenkler opprettelsen av flere underplott Matplotlib innenfor en enkelt figur, noe som muliggjør organisert og samtidig visualisering av ulike datasett eller plott.
Eksempel:
Her er et eksempel på en enkel Python kode for å plotte en graf ved hjelp av Matplotlib bibliotek .
Python3
# sample code> import> matplotlib.pyplot as plt> > plt.plot([> 1> ,> 2> ,> 3> ,> 4> ], [> 16> ,> 4> ,> 1> ,> 8> ])> plt.show()> |
Produksjon:
Plott ved hjelp av Python matplotlib
Matplotlib subplots() Syntaks
De subplots() funksjon i Pyplot-modul av Matplotlib-biblioteket brukes til å lage en figur og et sett med underplott.
Syntaks: matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=Ingen, gridspec_kw=Ingen, **fig_kw)
Parametere: Denne metoden godtar følgende parametere som er beskrevet nedenfor:
- nrows, ncols: Disse parameterne er antall rader/kolonner i delplottrutenettet.
- sharex, sharey: Denne parameteren kontrollerer deling av egenskaper mellom x (sharex) eller y (sharey) akser.
- klemme: Denne parameteren er en valgfri parameter, og den inneholder boolsk verdi med standardverdien True.
- på en: Denne parameteren er nøkkelordet pyplot.figure som setter figurnummeret eller etiketten.
- subplot_kwd: Denne parameteren er diktet med nøkkelord som sendes til add_subplot-kallet som brukes til å lage hvert subplot.
- gridspec_kw: Denne parameteren er diktet med nøkkelord sendt til GridSpec-konstruktøren som brukes til å lage rutenettet underplottene er plassert på.
Returnerer: Denne metoden returnerer følgende verdier.
- Fig : Denne metoden returnerer figuroppsettet.
- øks: Denne metoden returnerer aksene.Axes-objektet eller en rekke akseobjekter.
Python Subplots Matplotlib Eksempel
I dette eksemplet vil vi lage et enkelt plott ved å bruke subplots()-funksjonen i matplotlib.pyplot.
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y> => np.sin(x> *> *> 2> )> fig, ax> => plt.subplots()> ax.plot(x, y)> ax.set_title(> 'Simple plot'> )> fig.suptitle(> 'matplotlib.pyplot.subplots() Example'> )> plt.show()> |
Produksjon:
eksempel på funksjonen matplotlib.pyplot.subplots()
Vise flere plott ved hjelp av subplot()
Matplotlib subplots() funksjon lar oss plotte flere plott ved å bruke samme data eller aksen. La oss se noen eksempler for en bedre forståelse:
Stable underplott i én retning
I dette eksemplet vil vi plotte to plott som deler y-aksen. Parameterne for nrows og ncols er satt til henholdsvis 1 og 2, noe som betyr at plottet vil ha 1 rad og 2 kolonner eller 2 subplot. Vi kan få tilgang til disse underplottene ved å bruke indeksen [0] og [1].
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y1> => np.sin(x)> y2> => np.sin(x> *> *> 2> )> # create 2 subplots> fig, ax> => plt.subplots(nrows> => 1> , ncols> => 2> )> ax[> 0> ].plot(x, y1)> ax[> 1> ].plot(x, y2)> # plot 2 subplots> ax[> 0> ].set_title(> 'Simple plot with sin(x)'> )> ax[> 1> ].set_title(> 'Simple plot with sin(x**2)'> )> fig.suptitle(> 'Stacked subplots in one direction'> )> plt.show()> |
Produksjon:
Stable underplott i én retning
Stable underplott i to retninger
Dette eksemplet ligner det forrige. Den eneste forskjellen er at vi ga verdiene til nrows og ncols til 2. Dette betyr at plottet er delt inn i 2 rader og 2 kolonner som gir oss totalt 4 subplot matplotlib. Vi kan få tilgang til disse plottene ved å bruke indeksen.
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y1> => np.sin(x)> y2> => np.sin(x> *> *> 2> )> y3> => y1> *> *> 2> y4> => y2> *> *> 2> fig, ax> => plt.subplots(nrows> => 2> , ncols> => 2> )> ax[> 0> ,> 0> ].plot(x, y1, c> => 'red'> )> ax[> 0> ,> 1> ].plot(x, y2, c> => 'red'> )> ax[> 1> ,> 0> ].plot(x, y3, c> => 'blue'> )> ax[> 1> ,> 1> ].plot(x, y3, c> => 'blue'> )> ax[> 0> ,> 0> ].set_title(> 'Simple plot with sin(x)'> )> ax[> 0> ,> 1> ].set_title(> 'Simple plot with sin(x**2)'> )> ax[> 1> ,> 0> ].set_title(> 'Simple plot with sin(x)**2'> )> ax[> 1> ,> 1> ].set_title(> 'Simple plot with sin(x**2)**2'> )> fig.suptitle(> 'Stacked subplots in two direction'> )> plt.show()> |
Produksjon:
Stable delplott i to retninger
Delingsakse
I dette eksemplet vil vi plotte grafene som deler samme akse. Vi vil lage plott som vil dele y-aksen og etiketten, men vil ha sin egen x-akse og etikett. Dette kan gjøres ved å sende en verdi til 'num'-parameteren til subplot()-funksjonen. 'sharex'-parameteren er satt til True, noe som betyr at plottene som er opprettet vil dele X-aksen mellom seg.
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 2> *> np.pi,> 400> )> y1> => np.sin(x)> y2> => np.sin(x> *> *> 2> )> fig, (ax1, ax2)> => plt.subplots(> 2> , sharex> => True> )> ax1.plot(x, y1, c> => 'red'> )> ax2.plot(x, y2, c> => 'red'> )> ax1.set_ylabel(> 'Simple plot with sin(x)'> )> ax2.set_ylabel(> 'Simple plot with sin(x**2)'> )> fig.suptitle(> 'Subplots with shared axis'> )> plt.show()> |
Produksjon:
Delplott med delt akse
Polaraksen
I dette eksemplet vil vi plotte grafene ved å bruke de polare koordinatene. Subplot_kw-parameteren til subplot()-funksjonen er gitt en ordbokverdi for projeksjon satt til 'polar' som forteller subplot()-funksjonen å lage en polar graf.
Python3
# Implementation of matplotlib function> import> numpy as np> import> matplotlib.pyplot as plt> # First create some toy data:> x> => np.linspace(> 0> ,> 1.5> *> np.pi,> 100> )> y> => np.sin(x> *> *> 2> )> +> np.cos(x> *> *> 2> )> fig, axs> => plt.subplots(nrows> => 2> , ncols> => 2> ,> > subplot_kw> => dict> (polar> => True> ))> axs[> 0> ,> 0> ].plot(x, y)> axs[> 1> ,> 1> ].scatter(x, y)> fig.suptitle(> 'matplotlib.pyplot.subplots() Example'> )> plt.show()> |
Produksjon:
matplotlib.pyplot.subplots() funksjonseksempel