Rysowanie histogramu w Pythonie przy użyciu Matplotlib

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:

Histogram w Pythonie przy użyciu Matplotlib

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:

Histogram Matplotlib

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 :

Histogram przy użyciu Matplotlib

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:

Zrzut ekranu-2023-12-05-222526

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:

Zrzut ekranu-2023-12-05-222933

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:

Zrzut ekranu-2023-12-05-222826

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