Plotte histogram i Python ved hjelp av Matplotlib
Histogrammer er et grunnleggende verktøy i datavisualisering, og gir en grafisk representasjon av distribusjonen av data. De er spesielt nyttige for å utforske kontinuerlige data, for eksempel numeriske målinger eller sensoravlesninger. Denne artikkelen vil guide deg gjennom prosessen med Plot Histogram in Python ved hjelp av Matplotlib , som dekker de essensielle trinnene fra dataforberedelse til generering av histogramplotten.
Hva er Matplotlib-histogrammer?
EN Histogram representerer data gitt i form av noen grupper. Det er en nøyaktig metode for grafisk representasjon av numerisk datadistribusjon. Det er en type søyleplott der X-aksen representerer bingeområdene mens Y-aksen gir informasjon om frekvens.
Opprette et Matplotlib-histogram
For å lage et Matplotlib-histogram er det første trinnet å lage en boks med områdene, deretter fordele hele spekteret av verdiene i en serie med intervaller, og telle verdiene som faller inn i hvert av intervallene. Binger er identifisert som påfølgende, ikke-overlappende intervaller av variabler matplotlib.pyplot.hist() funksjonen brukes til å beregne og lage et histogram av x.
Følgende tabell viser parameterne som er akseptert av funksjonen matplotlib.pyplot.hist() :
| Egenskap | Parameter |
|---|---|
| x | array eller sekvens av array |
| søppelkasser | valgfri parameter inneholder heltall eller sekvens eller strenger |
| tetthet | Valgfri parameter inneholder boolske verdier |
| område | Valgfri parameter representerer øvre og nedre utvalg av søppelkasser |
| histtype | valgfri parameter som brukes til å lage type histogram [bar, barstacked, step, stepfilled], standard er bar |
| tilpasse | valgfri parameter kontrollerer plotting av histogram [venstre, høyre, midt] |
| vekter | valgfri parameter inneholder en rekke vekter med samme dimensjoner som x |
| bunn | plassering av grunnlinjen til hver søppelkasse |
| rbredde | valgfri parameter som er relativ bredde på stolpene i forhold til beholderbredde |
| farge | valgfri parameter som brukes til å angi farge eller sekvens av fargespesifikasjoner |
| merkelapp | valgfri parameterstreng eller sekvens av streng for å matche med flere datasett |
| Logg | valgfri parameter som brukes til å sette histogramaksen på loggskala |
Plotte histogram i Python ved hjelp av Matplotlib
Her vil vi se forskjellige metoder for å plotte histogram i Matplotlib i Python :
- Grunnleggende histogram
- Tilpasset histogram med tetthetsplott
- Tilpasset histogram med vannmerke
- Flere histogrammer med delplott
- Stablet histogram
- 2D-histogram (Hexbin-plott)
Lag et grunnleggende histogram i Matplotlib
La oss lage et grunnleggende histogram i Matplotlib ved å bruke Python med noen tilfeldige verdier.
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()> |
Produksjon:
Tilpasset histogram i Matplotlib med densitetsplott
La oss lage et tilpasset histogram med et tetthetsplott ved å bruke Matplotlib og Seaborn i Python. Det resulterende plottet visualiserer fordelingen av tilfeldige data med et jevnt tetthetsestimat.
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()> |
Produksjon:
Tilpasset histogram med vannmerke
Lag et tilpasset histogram ved å bruke Matplotlib i Python med spesifikke funksjoner. Den inkluderer ekstra stylingelementer, for eksempel å fjerne aksemerker, legge til polstring og angi en fargegradient for bedre visualisering.
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()> |
Utgang:
Flere histogrammer med delplott
La oss generere to histogrammer side om side ved å bruke Matplotlib i Python, hver med sitt eget sett med tilfeldige data og gir en visuell sammenligning av distribusjonene til data1> og data2> ved hjelp av histogrammer.
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()> |
Produksjon:
Stablet histogram ved hjelp av Matplotlib
La oss generere et stablet histogram ved å bruke Matplotlib i Python, som representerer to datasett med forskjellige tilfeldige datafordelinger. Det stablede histogrammet gir innsikt i den kombinerte frekvensfordelingen til de to datasettene.
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()> |
Produksjon:
Plott 2D Histogram (Hexbin Plot) ved hjelp av Matplotlib
La oss generere et 2D hexbin-plott ved å bruke Matplotlib i Python, gir en visuell representasjon av 2D-datadistribusjonen, der hexagoner formidler tettheten til datapunkter. Fargelinjen hjelper til med å tolke tettheten av punkter i forskjellige områder av plottet.
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()> |
Produksjon:
Konklusjon
Å plotte Matplotlib-histogrammer er en enkel og grei prosess. Ved å bruke hist()> funksjon, kan vi enkelt lage histogrammer med forskjellige søppelbredder og søppelkanter. Vi kan også tilpasse utseendet til histogrammer for å møte våre behov