Matplotlib.pyplot.subplots() i Python
Matplotlib är ett bibliotek i Python och det är en numerisk-matematisk förlängning för NumPy bibliotek. Pyplot är ett tillståndsbaserat gränssnitt till en Matplotlib-modul som tillhandahåller ett MATLAB-liknande gränssnitt. subplots()> funktion i Python förenklar skapandet av flera subplots Matplotlib inom en enda figur, vilket möjliggör organiserad och samtidig visualisering av olika datamängder eller plots.
Exempel:
Här är ett exempel på en enkel Pytonorm kod för att rita en graf med hjälp av Matplotlib bibliotek .
Python3
# sample code> import> matplotlib.pyplot as plt> > plt.plot([> 1> ,> 2> ,> 3> ,> 4> ], [> 16> ,> 4> ,> 1> ,> 8> ])> plt.show()> |
Produktion:
Rita med Python matplotlib
Matplotlib subplots() Syntax
De subplots() funktion i Pyplot-modul i Matplotlib-biblioteket används för att skapa en figur och en uppsättning subplots.
Syntax: matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=Ingen, gridspec_kw=Ingen, **fig_kw)
Parametrar: Denna metod accepterar följande parametrar som beskrivs nedan:
- nrows, ncols: Dessa parametrar är antalet rader/kolumner i deldiagrammets rutnät.
- sharex, sharey: Denna parameter styr delning av egenskaper mellan x (sharex) eller y (sharey) axlar.
- klämma: Denna parameter är en valfri parameter och den innehåller booleskt värde med standardvärdet True.
- på ett: Denna parameter är nyckelordet pyplot.figure som anger figurnumret eller etiketten.
- subplot_kwd: Denna parameter är dict med nyckelord som skickas till add_subplot-anropet som används för att skapa varje subplot.
- gridspec_kw: Den här parametern är dict med nyckelord som skickas till GridSpec-konstruktorn som används för att skapa rutnätet som subplotterna är placerade på.
Returnerar: Denna metod returnerar följande värden.
- fig : Denna metod returnerar figurlayouten.
- yxa : Denna metod returnerar axlarna. Axes-objekt eller array av Axes-objekt.
Python Subplots Matplotlib Exempel
I det här exemplet kommer vi att skapa en enkel plot med funktionen subplots() 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()> |
Produktion:
matplotlib.pyplot.subplots() funktionsexempel
Visa flera plotter med hjälp av subplots()
Funktionen Matplotlib subplots() låter oss plotta flera plotter med samma data eller axeln. Låt oss se några exempel för en bättre förståelse:
Stapla subplots i en riktning
I det här exemplet kommer vi att plotta två plotter som delar y-axeln. Parametrarna nrows och ncols är inställda på 1 respektive 2, vilket innebär att plottet kommer att ha 1 rad och 2 kolumner eller 2 subplots. Vi kan komma åt dessa subplots med hjälp av index [0] och [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()> |
Produktion:
Stapla subplotter i en riktning
Stapla subplots i två riktningar
Detta exempel liknar det föregående. Den enda skillnaden är att vi angav värdena för nrows och ncols till 2. Det betyder att plottet är uppdelat i 2 rader och 2 kolumner vilket ger oss totalt 4 subplots matplotlib. Vi kan komma åt dessa tomter med hjälp av indexet.
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()> |
Produktion:
Stapling av subplotter i två riktningar
Delningsaxel
I det här exemplet kommer vi att rita graferna som delar samma axel. Vi kommer att skapa plotter som delar y-axeln och etiketten men kommer att ha sin egen x-axel och etikett. Detta kan göras genom att skicka ett värde till parametern 'num' för subplot()-funktionen. Parametern 'sharex' är inställd på True, vilket betyder att plotten som skapas kommer att dela X-axeln mellan sig.
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()> |
Produktion:
Delplottar med delad axel
Polaraxeln
I det här exemplet kommer vi att rita graferna med polära koordinater. Subplot_kw-parametern för subplot()-funktionen ges ett ordboksvärde för projektion satt till 'polar' vilket talar om för subplot()-funktionen att skapa en polär 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()> |
Produktion:
matplotlib.pyplot.subplots() funktionsexempel