Vykreslenie histogramu v Pythone pomocou Matplotlib
Histogramy sú základným nástrojom pri vizualizácii údajov, poskytujúce grafické znázornenie distribúcie údajov. Sú obzvlášť užitočné na skúmanie nepretržitých údajov, ako sú numerické merania alebo údaje zo senzorov. Tento článok vás prevedie procesom vykresľovania histogramu Python použitím Matplotlib , ktorá zahŕňa základné kroky od prípravy údajov až po generovanie grafu histogramu.
Čo sú histogramy Matplotlib?
A Histogram predstavuje údaje poskytované vo forme niektorých skupín. Je to presná metóda na grafické znázornenie rozloženia číselných údajov. Je to typ stĺpcového grafu, kde os X predstavuje rozsahy zásobníkov, zatiaľ čo os Y poskytuje informácie o frekvencii.
Vytvorenie histogramu Matplotlib
Ak chcete vytvoriť histogram Matplotlib, prvým krokom je vytvoriť zásobník rozsahov, potom rozdeliť celý rozsah hodnôt do série intervalov a spočítať hodnoty, ktoré spadajú do každého z intervalov. Bins sú identifikované ako po sebe idúce, neprekrývajúce sa intervaly premenných matplotlib.pyplot.hist() funkcia sa používa na výpočet a vytvorenie histogramu x.
Nasledujúca tabuľka zobrazuje parametre akceptované funkciou matplotlib.pyplot.hist() :
| Atribút | Parameter |
|---|---|
| X | pole alebo postupnosť poľa |
| koše | voliteľný parameter obsahuje celé číslo alebo sekvenciu alebo reťazce |
| hustota | Voliteľný parameter obsahuje boolovské hodnoty |
| rozsah | Voliteľný parameter predstavuje horný a dolný rozsah zásobníkov |
| histtype | voliteľný parameter používaný na vytvorenie typu histogramu [bar, barstacked, step, stepfilled], predvolená hodnota je bar |
| zarovnať | voliteľný parameter riadi vykresľovanie histogramu [vľavo, vpravo, uprostred] |
| závažia | voliteľný parameter obsahuje pole váh s rovnakými rozmermi ako x |
| dno | umiestnenie základnej čiary každého zásobníka |
| šírka r | voliteľný parameter, ktorým je relatívna šírka pruhov vzhľadom na šírku zásobníka |
| farba | voliteľný parameter používaný na nastavenie farby alebo poradia farebných špecifikácií |
| štítok | voliteľný reťazec parametrov alebo sekvencia reťazcov, ktoré sa zhodujú s viacerými množinami údajov |
| log | voliteľný parameter používaný na nastavenie osi histogramu na logaritmickej stupnici |
Vykreslenie histogramu v Pythone pomocou Matplotlib
Tu uvidíme rôzne metódy vykresľovania histogramu v Matplotlib v Python :
- Základný histogram
- Prispôsobený histogram s grafom hustoty
- Prispôsobený histogram s vodoznakom
- Viacnásobné histogramy s podplochami
- Skladaný histogram
- 2D histogram (Hexbinov graf)
Vytvorte základný histogram v Matplotlib
Vytvorme základný histogram v Matplotlib pomocou Pythonu niektorých náhodných hodnôt.
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()> |
Výkon:
Prispôsobený histogram v Matplotlib s Density Plot
Poďme vytvoriť prispôsobený histogram s grafom hustoty pomocou Matplotlib a Seaborn v Pythone. Výsledný graf vizualizuje rozdelenie náhodných údajov s hladkým odhadom hustoty.
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()> |
Výkon:
Prispôsobený histogram s vodoznakom
Vytvorte prispôsobený histogram pomocou Matplotlib v Pythone so špecifickými funkciami. Zahŕňa ďalšie prvky štýlu, ako je odstránenie začiarknutí osí, pridanie výplne a nastavenie farebného prechodu pre lepšiu vizualizáciu.
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()> |
Výkon :
Viacnásobné histogramy s podplochami
Vygenerujme dva histogramy vedľa seba pomocou Matplotlib v Pythone, každý s vlastnou sadou náhodných údajov a poskytuje vizuálne porovnanie distribúcií data1> a data2> pomocou histogramov.
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()> |
Výkon:
Skladaný histogram pomocou Matplotlib
Poďme vygenerovať skladaný histogram pomocou Matplotlib v Pythone, ktorý predstavuje dve množiny údajov s rôznymi náhodnými distribúciami údajov. Skladaný histogram poskytuje prehľad o kombinovanej distribúcii frekvencií týchto dvoch súborov údajov.
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()> |
Výkon:
Nakreslite 2D histogram (Hexbin Plot) pomocou Matplotlib
Poďme vygenerovať 2D hexbinový graf pomocou Matplotlib v Pythone, poskytuje vizuálnu reprezentáciu 2D distribúcie údajov, kde šesťuholníky vyjadrujú hustotu údajových bodov. Farebná lišta pomáha interpretovať hustotu bodov v rôznych oblastiach grafu.
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()> |
Výkon:
Záver
Vykresľovanie histogramov Matplotlib je jednoduchý a priamočiary proces. Pomocou hist()> môžeme jednoducho vytvárať histogramy s rôznymi šírkami a hranami priehradiek. Vzhľad histogramov môžeme tiež prispôsobiť našim potrebám