Trasarea histogramei în Python folosind Matplotlib
Histogramele sunt un instrument fundamental în vizualizarea datelor, oferind o reprezentare grafică a distribuției datelor. Ele sunt deosebit de utile pentru explorarea datelor continue, cum ar fi măsurătorile numerice sau citirile senzorilor. Acest articol vă va ghida prin procesul de Plot Histogram în Piton folosind Matplotlib , acoperind etapele esențiale de la pregătirea datelor până la generarea graficului histogramei.
Ce este Histogramele Matplotlib?
A Histogramă reprezintă date furnizate sub forma unor grupuri. Este o metodă precisă pentru reprezentarea grafică a distribuției datelor numerice. Este un tip de diagramă cu bare în care axa X reprezintă intervalele bin, în timp ce axa Y oferă informații despre frecvență.
Crearea unei histograme Matplotlib
Pentru a crea o histogramă Matplotlib, primul pas este să creați un bin cu intervale, apoi să distribuiți întregul interval de valori într-o serie de intervale și să numărați valorile care se încadrează în fiecare dintre intervale. Binele sunt identificate ca intervale de variabile consecutive, care nu se suprapun matplotlib.pyplot.hist() funcția este utilizată pentru a calcula și a crea o histogramă a lui x.
Următorul tabel prezintă parametrii acceptați de funcția matplotlib.pyplot.hist() :
| Atribut | Parametru |
|---|---|
| X | matrice sau secvență de matrice |
| pubele de gunoi | parametrul opțional conține un întreg sau o secvență sau șiruri de caractere |
| densitate | Parametrul opțional conține valori booleene |
| gamă | Parametrul opțional reprezintă intervalul superior și inferior al recipientelor |
| histtip | parametru opțional utilizat pentru a crea tipul de histogramă [bar, barstacked, step, stepfilled], implicit este bar |
| alinia | parametrul opțional controlează reprezentarea histogramei [stânga, dreapta, mijlocul] |
| greutăți | parametrul opțional conține o matrice de greutăți având aceleași dimensiuni ca x |
| fund | locația liniei de bază a fiecărui recipient |
| rwidth | parametru opțional care este lățimea relativă a barelor în raport cu lățimea recipientului |
| culoare | parametru opțional utilizat pentru a seta culoarea sau secvența specificațiilor de culoare |
| eticheta | șir de parametri opțional sau secvență de șir pentru a se potrivi cu mai multe seturi de date |
| Buturuga | parametru opțional utilizat pentru a seta axa histogramei pe scara logaritmică |
Trasarea histogramei în Python folosind Matplotlib
Aici vom vedea diferite metode de trasare a histogramei în Matplotlib în Piton :
- Histograma de bază
- Histogramă personalizată cu diagramă de densitate
- Histogramă personalizată cu filigran
- Histograme multiple cu subploturi
- Histogramă stivuită
- Histogramă 2D (diagrama Hexbin)
Creați o histogramă de bază în Matplotlib
Să creăm o histogramă de bază în Matplotlib folosind Python a unor valori aleatorii.
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()> |
Ieșire:
Histogramă personalizată în Matplotlib cu diagramă de densitate
Să creăm o histogramă personalizată cu o diagramă de densitate folosind Matplotlib și Seaborn în Python. Graficul rezultat vizualizează distribuția datelor aleatoare cu o estimare netedă a densității.
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()> |
Ieșire:
Histogramă personalizată cu filigran
Creați o histogramă personalizată folosind Matplotlib în Python cu caracteristici specifice. Include elemente de stil suplimentare, cum ar fi eliminarea bifurilor axelor, adăugarea de umplutură și setarea unui gradient de culoare pentru o vizualizare mai bună.
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()> |
Ieșire:
Histograme multiple cu subploturi
Să generăm două histograme una lângă alta folosind Matplotlib în Python, fiecare cu propriul său set de date aleatorii și oferă o comparație vizuală a distribuțiilor de data1> și data2> folosind histograme.
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()> |
Ieșire:
Histogramă stivuită folosind Matplotlib
Să generăm o histogramă stivuită folosind Matplotlib în Python, reprezentând două seturi de date cu distribuții aleatoare de date diferite. Histograma stivuită oferă informații despre distribuția combinată de frecvență a celor două seturi de date.
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()> |
Ieșire:
Trasează histograma 2D (Hexbin Plot) folosind Matplotlib
Să generăm o diagramă hexbin 2D utilizând Matplotlib în Python, oferă o reprezentare vizuală a distribuției datelor 2D, unde hexagoanele transmit densitatea punctelor de date. Bara de culori ajută la interpretarea densității punctelor din diferite regiuni ale graficului.
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()> |
Ieșire:
Concluzie
Trasarea histogramelor Matplotlib este un proces simplu și direct. Prin utilizarea hist()> funcție, putem crea cu ușurință histograme cu diferite lățimi și margini ale containerului. De asemenea, putem personaliza aspectul histogramelor pentru a satisface nevoile noastre