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:
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:
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 :
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:
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:
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:
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