Plotning af histogram i Python ved hjælp af Matplotlib

Plotning af histogram i Python ved hjælp af Matplotlib

Histogrammer er et grundlæggende værktøj i datavisualisering, der giver en grafisk repræsentation af distributionen af ​​data. De er især nyttige til at udforske kontinuerlige data, såsom numeriske målinger eller sensoraflæsninger. Denne artikel vil guide dig gennem processen med Plot Histogram in Python ved brug af Matplotlib , der dækker de væsentlige trin fra dataforberedelse til generering af histogramplottet.

Hvad er Matplotlib-histogrammer?

EN Histogram repræsenterer data leveret i form af nogle grupper. Det er en nøjagtig metode til grafisk repræsentation af numerisk datadistribution. Det er en type søjleplot, hvor X-aksen repræsenterer bin-områderne, mens Y-aksen giver information om frekvens.

Oprettelse af et Matplotlib-histogram

For at oprette et Matplotlib-histogram er det første trin at oprette en bin med intervallerne, derefter fordele hele rækken af ​​værdier i en række intervaller og tælle de værdier, der falder ind i hvert af intervallerne. Bins identificeres som på hinanden følgende, ikke-overlappende intervaller af variabler matplotlib.pyplot.hist() funktion bruges til at beregne og skabe et histogram af x.

Følgende tabel viser de parametre, der accepteres af funktionen matplotlib.pyplot.hist() :

Attribut Parameter
x array eller sekvens af array
skraldespande valgfri parameter indeholder heltal eller sekvens eller strenge
massefylde Valgfri parameter indeholder booleske værdier
rækkevidde Valgfri parameter repræsenterer øvre og nedre række af skraldespande
histtype valgfri parameter, der bruges til at oprette type histogram [bar, barstacked, step, stepfilled], standard er bar
justere valgfri parameter styrer plotningen af ​​histogram [venstre, højre, midt]
vægte valgfri parameter indeholder en række vægte med samme dimensioner som x
bund placeringen af ​​basislinjen for hver beholder
rbredde valgfri parameter, som er bjælkernes relative bredde i forhold til beholderbredden
farve valgfri parameter, der bruges til at indstille farve eller rækkefølge af farvespecifikationer
etiket valgfri parameterstreng eller sekvens af streng for at matche med flere datasæt
log valgfri parameter, der bruges til at indstille histogramaksen på logskalaen

Plotning af histogram i Python ved hjælp af Matplotlib

Her vil vi se forskellige metoder til at plotte histogram i Matplotlib i Python :

  • Grundlæggende histogram
  • Tilpasset histogram med tæthedsplot
  • Tilpasset histogram med vandmærke
  • Flere histogrammer med subplot
  • Stablet histogram
  • 2D-histogram (Hexbin-plot)

Opret et grundlæggende histogram i Matplotlib

Lad os oprette et grundlæggende histogram i Matplotlib ved hjælp af Python med nogle tilfældige værdier.

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()>

Produktion:

Histogram i Python ved hjælp af Matplotlib

Tilpasset histogram i Matplotlib med tæthedsplot

Lad os oprette et tilpasset histogram med et tæthedsplot ved hjælp af Matplotlib og Seaborn i Python. Det resulterende plot visualiserer fordelingen af ​​tilfældige data med et jævnt tæthedsestimat.

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()>

Produktion:

Histogram Matplotlib

Tilpasset histogram med vandmærke

Opret et tilpasset histogram ved hjælp af Matplotlib i Python med specifikke funktioner. Det inkluderer yderligere stylingelementer, såsom fjernelse af aksemærker, tilføjelse af polstring og indstilling af en farvegradient 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()>

Output:

Histogram ved hjælp af Matplotlib

Flere histogrammer med subplots

Lad os generere to histogrammer side om side ved hjælp af Matplotlib i Python, hver med sit eget sæt af tilfældige data og giver en visuel sammenligning af distributionerne af data1> og data2> ved hjælp af 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()>

Produktion:

Skærmbillede-2023-12-05-222526

Stablet histogram ved hjælp af Matplotlib

Lad os generere et stablet histogram ved hjælp af Matplotlib i Python, der repræsenterer to datasæt med forskellige tilfældige datafordelinger. Det stablede histogram giver indsigt i den kombinerede frekvensfordeling af de to datasæt.

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()>

Produktion:

Skærmbillede-2023-12-05-222933

Plot 2D Histogram (Hexbin Plot) ved hjælp af Matplotlib

Lad os generere et 2D hexbin plot ved hjælp af Matplotlib i Python, giver en visuel repræsentation af 2D datafordelingen, hvor hexagoner formidler tætheden af ​​datapunkter. Farvelinjen hjælper med at fortolke tætheden af ​​punkter i forskellige områder af 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()>

Produktion:

Skærmbillede-2023-12-05-222826

Konklusion

At plotte Matplotlib-histogrammer er en enkel og ligetil proces. Ved at bruge hist()> funktion, kan vi nemt lave histogrammer med forskellige beholderbredder og beholderkanter. Vi kan også tilpasse udseendet af histogrammer til at opfylde vores behov