Rysowanie histogramu w Pythonie przy użyciu Matplotlib
Histogramy są podstawowym narzędziem wizualizacji danych, zapewniającym graficzną reprezentację rozkładu danych. Są szczególnie przydatne do eksploracji danych ciągłych, takich jak pomiary numeryczne lub odczyty czujników. Ten artykuł poprowadzi Cię przez proces tworzenia histogramu w programie Pyton za pomocą Matplotlib , obejmujący podstawowe etapy od przygotowania danych do wygenerowania wykresu histogramu.
Co to są histogramy Matplotlib?
A Histogram reprezentuje dane dostarczane w formie niektórych grup. Jest to dokładna metoda graficznego przedstawienia rozkładu danych numerycznych. Jest to rodzaj wykresu słupkowego, gdzie oś X przedstawia zakresy przedziałów, a oś Y podaje informacje o częstotliwości.
Tworzenie histogramu Matplotlib
Aby utworzyć histogram Matplotlib, pierwszym krokiem jest utworzenie pojemnika zakresów, następnie rozłożenie całego zakresu wartości na serię przedziałów i policzenie wartości mieszczących się w każdym z przedziałów. Przedziały są identyfikowane jako kolejne, nienakładające się przedziały zmiennych matplotlib.pyplot.hist() funkcja służy do obliczenia i utworzenia histogramu x.
Poniższa tabela przedstawia parametry akceptowane przez funkcję matplotlib.pyplot.hist() :
| Atrybut | Parametr |
|---|---|
| X | tablica lub sekwencja tablicy |
| kosze | opcjonalny parametr zawiera liczbę całkowitą, sekwencję lub ciągi znaków |
| gęstość | Parametr opcjonalny zawiera wartości logiczne |
| zakres | Parametr opcjonalny reprezentuje górny i dolny zakres pojemników |
| typ hist | opcjonalny parametr służący do tworzenia typu histogramu [słupek, słupek, schodek, schodek], domyślnie jest to słupek |
| wyrównywać | opcjonalny parametr kontroluje wykreślanie histogramu [lewy, prawy, środkowy] |
| ciężary | parametr opcjonalny zawiera tablicę wag o takich samych wymiarach jak x |
| spód | położenie linii bazowej każdego pojemnika |
| rszerokość | parametr opcjonalny, którym jest względna szerokość słupków w stosunku do szerokości pojemnika |
| kolor | opcjonalny parametr używany do ustawiania koloru lub sekwencji specyfikacji kolorów |
| etykieta | opcjonalny ciąg parametrów lub sekwencja ciągów w celu dopasowania do wielu zestawów danych |
| dziennik | opcjonalny parametr służący do ustawienia osi histogramu w skali logarytmicznej |
Rysowanie histogramu w Pythonie przy użyciu Matplotlib
Tutaj zobaczymy różne metody kreślenia histogramu w Matplotlib Pyton :
- Podstawowy histogram
- Dostosowany histogram z wykresem gęstości
- Dostosowany histogram ze znakiem wodnym
- Wiele histogramów z wykresami cząstkowymi
- Skumulowany histogram
- Histogram 2D (wykres szesnastkowy)
Utwórz podstawowy histogram w Matplotlib
Stwórzmy podstawowy histogram w Matplotlib przy użyciu Pythona z pewnymi losowymi wartościami.
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()> |
Wyjście:
Dostosowany histogram w Matplotlib z wykresem gęstości
Stwórzmy dostosowany histogram z wykresem gęstości przy użyciu Matplotlib i Seaborn w Pythonie. Powstały wykres wizualizuje rozkład danych losowych z gładkim oszacowaniem gęstości.
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()> |
Wyjście:
Dostosowany histogram ze znakiem wodnym
Utwórz dostosowany histogram za pomocą Matplotlib w Pythonie z określonymi funkcjami. Zawiera dodatkowe elementy stylizacji, takie jak usuwanie znaczników osi, dodawanie dopełnienia i ustawianie gradientu kolorów dla lepszej wizualizacji.
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()> |
Wyjście :
Wiele histogramów z wykresami cząstkowymi
Wygenerujmy dwa histogramy obok siebie przy użyciu Matplotlib w Pythonie, każdy z własnym zestawem losowych danych i zapewnia wizualne porównanie rozkładów data1> I data2> za pomocą histogramów.
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()> |
Wyjście:
Skumulowany histogram przy użyciu Matplotlib
Wygenerujmy skumulowany histogram przy użyciu Matplotlib w Pythonie, reprezentujący dwa zbiory danych z różnymi losowymi rozkładami danych. Skumulowany histogram zapewnia wgląd w łączny rozkład częstotliwości dwóch zbiorów danych.
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()> |
Wyjście:
Wykreśl histogram 2D (wykres szesnastkowy) za pomocą Matplotlib
Generujemy wykres szesnastkowy 2D przy użyciu Matplotlib w Pythonie, zapewnia wizualną reprezentację rozkładu danych 2D, gdzie sześciokąty przedstawiają gęstość punktów danych. Pasek kolorów pomaga zinterpretować gęstość punktów w różnych obszarach wykresu.
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()> |
Wyjście:
Wniosek
Wykreślanie histogramów Matplotlib jest prostym i bezpośrednim procesem. Korzystając z hist()> Dzięki tej funkcji możemy łatwo tworzyć histogramy o różnych szerokościach i krawędziach bin. Możemy także dostosować wygląd histogramów do naszych potrzeb