Vykreslování histogramu v Pythonu pomocí Matplotlib

Vykreslování histogramu v Pythonu pomocí Matplotlib

Histogramy jsou základním nástrojem vizualizace dat, poskytující grafické znázornění rozložení dat. Jsou zvláště užitečné pro zkoumání nepřetržitých dat, jako jsou numerická měření nebo údaje ze senzorů. Tento článek vás provede procesem vykreslování histogramu v Krajta použitím Matplotlib , pokrývající základní kroky od přípravy dat až po generování grafu histogramu.

Co jsou histogramy Matplotlib?

A Histogram představuje data poskytovaná ve formě některých skupin. Je to přesná metoda pro grafické znázornění numerického rozložení dat. Je to typ sloupcového grafu, kde osa X představuje rozsahy přihrádek, zatímco osa Y poskytuje informace o frekvenci.

Vytvoření histogramu Matplotlib

Chcete-li vytvořit histogram Matplotlib, prvním krokem je vytvořit přihrádku rozsahů, poté rozdělit celý rozsah hodnot do řady intervalů a spočítat hodnoty, které spadají do každého z intervalů. Přihrádky jsou identifikovány jako po sobě jdoucí, nepřekrývající se intervaly proměnných matplotlib.pyplot.hist() Funkce se používá k výpočtu a vytvoření histogramu x.

Následující tabulka ukazuje parametry akceptované funkcí matplotlib.pyplot.hist() :

Atribut Parametr
X pole nebo sekvence pole
popelnice volitelný parametr obsahuje celé číslo nebo sekvenci nebo řetězce
hustota Nepovinný parametr obsahuje booleovské hodnoty
rozsah Volitelný parametr představuje horní a dolní rozsah zásobníků
histtype volitelný parametr používaný k vytvoření typu histogramu [bar, barstacked, step, stepfilled], výchozí je bar
zarovnat volitelný parametr řídí vykreslování histogramu [left, right, mid]
závaží volitelný parametr obsahuje pole vah, které mají stejné rozměry jako x
dno umístění základní linie každé přihrádky
šířka r volitelný parametr, kterým je relativní šířka pruhů vzhledem k šířce přihrádky
barva volitelný parametr používaný k nastavení barvy nebo sekvence barevných specifikací
označení volitelný řetězec parametrů nebo posloupnost řetězce pro shodu s více datovými sadami
log volitelný parametr používaný k nastavení osy histogramu na logaritmické stupnici

Vykreslování histogramu v Pythonu pomocí Matplotlib

Zde uvidíme různé metody vykreslování histogramu v Matplotlib v Krajta :

  • Základní histogram
  • Přizpůsobený histogram s grafem hustoty
  • Přizpůsobený histogram s vodoznakem
  • Vícenásobné histogramy s dílčími grafy
  • Skládaný histogram
  • 2D histogram (Hexbinův graf)

Vytvořte základní histogram v Matplotlib

Vytvořme základní histogram v Matplotlib pomocí Pythonu z některých náhodných hodnot.

Python3




import> matplotlib.pyplot as plt> import> numpy as np> # Generate random data for the histogram> data> => np.random.randn(> 1000> )> # Plotting a basic histogram> plt.hist(data, bins> => 30> , color> => 'skyblue'> , edgecolor> => 'black'> )> # Adding labels and title> plt.xlabel(> 'Values'> )> plt.ylabel(> 'Frequency'> )> plt.title(> 'Basic Histogram'> )> # Display the plot> plt.show()>

Výstup:

Histogram v Pythonu pomocí Matplotlib

Přizpůsobený histogram v Matplotlib s Density Plot

Pojďme vytvořit přizpůsobený histogram s grafem hustoty pomocí Matplotlib a Seaborn v Pythonu. Výsledný graf vizualizuje rozložení náhodných dat s hladkým odhadem hustoty.

Python3




import> matplotlib.pyplot as plt> import> seaborn as sns> import> numpy as np> # Generate random data for the histogram> data> => np.random.randn(> 1000> )> # Creating a customized histogram with a density plot> sns.histplot(data, bins> => 30> , kde> => True> , color> => 'lightgreen'> , edgecolor> => 'red'> )> # Adding labels and title> plt.xlabel(> 'Values'> )> plt.ylabel(> 'Density'> )> plt.title(> 'Customized Histogram with Density Plot'> )> # Display the plot> plt.show()>

Výstup:

Histogram Matplotlib

Přizpůsobený histogram s vodoznakem

Vytvořte přizpůsobený histogram pomocí Matplotlib v Pythonu se specifickými funkcemi. Zahrnuje další stylingové prvky, jako je odstranění klíšťat os, přidání výplně a nastavení barevného přechodu pro lepší vizualizaci.

Python3




import> matplotlib.pyplot as plt> import> numpy as np> from> matplotlib> import> colors> from> matplotlib.ticker> import> PercentFormatter> # Creating dataset> np.random.seed(> 23685752> )> N_points> => 10000> n_bins> => 20> # Creating distribution> x> => np.random.randn(N_points)> y> => .> 8> *> *> x> +> np.random.randn(> 10000> )> +> 25> legend> => [> 'distribution'> ]> # Creating histogram> fig, axs> => plt.subplots(> 1> ,> 1> ,> > figsize> => (> 10> ,> 7> ),> > tight_layout> => True> )> # Remove axes splines> for> s> in> [> 'top'> ,> 'bottom'> ,> 'left'> ,> 'right'> ]:> > axs.spines[s].set_visible(> False> )> # Remove x, y ticks> axs.xaxis.set_ticks_position(> 'none'> )> axs.yaxis.set_ticks_position(> 'none'> )> > # Add padding between axes and labels> axs.xaxis.set_tick_params(pad> => 5> )> axs.yaxis.set_tick_params(pad> => 10> )> # Add x, y gridlines> axs.grid(b> => True> , color> => 'grey'> ,> > linestyle> => '-.'> , linewidth> => 0.5> ,> > alpha> => 0.6> )> # Add Text watermark> fig.text(> 0.9> ,> 0.15> ,> 'Jeeteshgavande30'> ,> > fontsize> => 12> ,> > color> => 'red'> ,> > ha> => 'right'> ,> > va> => 'bottom'> ,> > alpha> => 0.7> )> # Creating histogram> N, bins, patches> => axs.hist(x, bins> => n_bins)> # Setting color> fracs> => ((N> *> *> (> 1> /> 5> ))> /> N.> max> ())> norm> => colors.Normalize(fracs.> min> (), fracs.> max> ())> for> thisfrac, thispatch> in> zip> (fracs, patches):> > color> => plt.cm.viridis(norm(thisfrac))> > thispatch.set_facecolor(color)> # Adding extra features> plt.xlabel(> 'X-axis'> )> plt.ylabel(> 'y-axis'> )> plt.legend(legend)> plt.title(> 'Customized histogram'> )> # Show plot> plt.show()>

Výstup :

Histogram pomocí Matplotlib

Vícenásobné histogramy s dílčími grafy

Pojďme vygenerovat dva histogramy vedle sebe pomocí Matplotlib v Pythonu, každý s vlastní sadou náhodných dat a poskytuje vizuální srovnání distribucí data1> a data2> pomocí histogramů.

Python3




import> matplotlib.pyplot as plt> import> numpy as np> # Generate random data for multiple histograms> data1> => np.random.randn(> 1000> )> data2> => np.random.normal(loc> => 3> , scale> => 1> , size> => 1000> )> # Creating subplots with multiple histograms> fig, axes> => plt.subplots(nrows> => 1> , ncols> => 2> , figsize> => (> 12> ,> 4> ))> axes[> 0> ].hist(data1, bins> => 30> , color> => 'Yellow'> , edgecolor> => 'black'> )> axes[> 0> ].set_title(> 'Histogram 1'> )> axes[> 1> ].hist(data2, bins> => 30> , color> => 'Pink'> , edgecolor> => 'black'> )> axes[> 1> ].set_title(> 'Histogram 2'> )> # Adding labels and title> for> ax> in> axes:> > ax.set_xlabel(> 'Values'> )> > ax.set_ylabel(> 'Frequency'> )> # Adjusting layout for better spacing> plt.tight_layout()> # Display the figure> plt.show()>

Výstup:

Snímek obrazovky-2023-12-05-222526

Skládaný histogram pomocí Matplotlib

Pojďme vygenerovat skládaný histogram pomocí Matplotlib v Pythonu, který představuje dvě datové sady s různými náhodnými distribucemi dat. Skládaný histogram poskytuje přehled o kombinované distribuci frekvence dvou datových sad.

Python3




import> matplotlib.pyplot as plt> import> numpy as np> # Generate random data for stacked histograms> data1> => np.random.randn(> 1000> )> data2> => np.random.normal(loc> => 3> , scale> => 1> , size> => 1000> )> # Creating a stacked histogram> plt.hist([data1, data2], bins> => 30> , stacked> => True> , color> => [> 'cyan'> ,> 'Purple'> ], edgecolor> => 'black'> )> # Adding labels and title> plt.xlabel(> 'Values'> )> plt.ylabel(> 'Frequency'> )> plt.title(> 'Stacked Histogram'> )> # Adding legend> plt.legend([> 'Dataset 1'> ,> 'Dataset 2'> ])> # Display the plot> plt.show()>

Výstup:

Snímek obrazovky-2023-12-05-222933

Vyneste 2D histogram (Hexbin Plot) pomocí Matplotlib

Pojďme vygenerovat 2D hexbinový graf pomocí Matplotlib v Pythonu, poskytuje vizuální reprezentaci distribuce 2D dat, kde šestiúhelníky přenášejí hustotu datových bodů. Barevný pruh pomáhá interpretovat hustotu bodů v různých oblastech grafu.

Python3




import> matplotlib.pyplot as plt> import> numpy as np> # Generate random 2D data for hexbin plot> x> => np.random.randn(> 1000> )> y> => 2> *> x> +> np.random.normal(size> => 1000> )> # Creating a 2D histogram (hexbin plot)> plt.hexbin(x, y, gridsize> => 30> , cmap> => 'Blues'> )> # Adding labels and title> plt.xlabel(> 'X values'> )> plt.ylabel(> 'Y values'> )> plt.title(> '2D Histogram (Hexbin Plot)'> )> # Adding colorbar> plt.colorbar()> # Display the plot> plt.show()>

Výstup:

Snímek obrazovky-2023-12-05-222826

Závěr

Vykreslování histogramů Matplotlib je jednoduchý a přímočarý proces. Pomocí hist()> můžeme snadno vytvářet histogramy s různými šířkami přihrádek a hranami přihrádek. Můžeme také upravit vzhled histogramů, aby vyhovoval našim potřebám