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:
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:
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:
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:
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:
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:
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