Histogram plotten in Python met behulp van Matplotlib
Histogrammen zijn een fundamenteel hulpmiddel bij datavisualisatie en bieden een grafische weergave van de distributie van gegevens. Ze zijn met name handig voor het verkennen van continue gegevens, zoals numerieke metingen of sensormetingen. Dit artikel leidt u door het proces van plothistogram in Python gebruik makend van Matplotlib , waarin de essentiële stappen worden behandeld, van gegevensvoorbereiding tot het genereren van de histogramplot.
Wat zijn Matplotlib-histogrammen?
A Histogram vertegenwoordigt gegevens die zijn verstrekt in de vorm van bepaalde groepen. Het is een nauwkeurige methode voor de grafische weergave van numerieke gegevensverdeling. Het is een soort staafdiagram waarbij de X-as de bin-bereiken vertegenwoordigt, terwijl de Y-as informatie geeft over de frequentie.
Een Matplotlib-histogram maken
Om een Matplotlib-histogram te maken, is de eerste stap het maken van een bak met bereiken, vervolgens het hele bereik van de waarden in een reeks intervallen verdelen en de waarden tellen die in elk van de intervallen vallen. Bakken worden geïdentificeerd als opeenvolgende, niet-overlappende intervallen van variabelen matplotlib.pyplot.hist() functie wordt gebruikt om een histogram van x te berekenen en te maken.
De volgende tabel toont de parameters die worden geaccepteerd door de functie matplotlib.pyplot.hist() :
| Attribuut | Parameter |
|---|---|
| X | array of reeks arrays |
| bakken | optionele parameter bevat een geheel getal, een reeks of tekenreeksen |
| dikte | Optionele parameter bevat Booleaanse waarden |
| bereik | Optionele parameter vertegenwoordigt het bovenste en onderste bereik van bakken |
| histtype | optionele parameter die wordt gebruikt om het type histogram te maken [bar, barstacked, step, stepfilled], standaard is bar |
| uitlijnen | optionele parameter regelt het plotten van het histogram [links, rechts, midden] |
| gewichten | optionele parameter bevat een reeks gewichten met dezelfde afmetingen als x |
| onderkant | locatie van de basislijn van elke bak |
| breedte | optionele parameter die de relatieve breedte van de staven is ten opzichte van de bakbreedte |
| kleur | optionele parameter die wordt gebruikt om de kleur of volgorde van kleurspecificaties in te stellen |
| etiket | optionele parameterreeks of reeks reeksen om te matchen met meerdere datasets |
| loggen | optionele parameter die wordt gebruikt om de histogramas op logschaal in te stellen |
Histogram plotten in Python met behulp van Matplotlib
Hier zullen we verschillende methoden zien voor het plotten van histogram in Matplotlib in Python :
- Basishistogram
- Aangepast histogram met dichtheidsplot
- Aangepast histogram met watermerk
- Meerdere histogrammen met subplots
- Gestapeld histogram
- 2D-histogram (Hexbin-plot)
Maak een basishistogram in Matplotlib
Laten we een basishistogram maken in Matplotlib met behulp van Python van enkele willekeurige waarden.
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()> |
Uitgang:
Aangepast histogram in Matplotlib met dichtheidsplot
Laten we een aangepast histogram maken met een dichtheidsplot met behulp van Matplotlib en Seaborn in Python. De resulterende plot visualiseert de verdeling van willekeurige gegevens met een vloeiende schatting van de dichtheid.
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()> |
Uitgang:
Aangepast histogram met watermerk
Maak een aangepast histogram met Matplotlib in Python met specifieke functies. Het bevat extra stijlelementen, zoals het verwijderen van asmarkeringen, het toevoegen van opvulling en het instellen van een kleurverloop voor een betere visualisatie.
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()> |
Uitgang:
Meerdere histogrammen met subplots
Laten we twee histogrammen naast elkaar genereren met behulp van Matplotlib in Python, elk met zijn eigen set willekeurige gegevens en een visuele vergelijking biedt van de distributies van data1> En data2> met behulp van histogrammen.
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()> |
Uitgang:
Gestapeld histogram met Matplotlib
Laten we een gestapeld histogram genereren met behulp van Matplotlib in Python, dat twee datasets vertegenwoordigt met verschillende willekeurige gegevensverdelingen. Het gestapelde histogram geeft inzicht in de gecombineerde frequentieverdeling van de twee datasets.
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()> |
Uitgang:
Plot 2D-histogram (Hexbin-plot) met behulp van Matplotlib
Laten we een 2D-hexbin-plot genereren met behulp van Matplotlib in Python, wat een visuele weergave biedt van de 2D-gegevensdistributie, waarbij zeshoeken de dichtheid van datapunten overbrengen. De kleurenbalk helpt bij het interpreteren van de dichtheid van punten in verschillende delen van de plot.
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()> |
Uitgang:
Conclusie
Het plotten van Matplotlib-histogrammen is een eenvoudig en duidelijk proces. Door gebruik te maken van de hist()> functie kunnen we eenvoudig histogrammen maken met verschillende bakbreedtes en bakranden. We kunnen ook het uiterlijk van histogrammen aanpassen aan onze behoeften