Побудова гістограми в Python за допомогою Matplotlib
Гістограми є основним інструментом візуалізації даних, що забезпечує графічне представлення розподілу даних. Вони особливо корисні для дослідження безперервних даних, таких як числові вимірювання або показання датчиків. Ця стаття допоможе вам побудувати гістограму в Python використовуючи Matplotlib , що охоплює основні кроки від підготовки даних до створення гістограми.
Що таке гістограми Matplotlib?
А Гістограма представляє дані, надані у вигляді деяких груп. Це точний метод для графічного представлення розподілу числових даних. Це тип стовпчастої діаграми, де вісь X представляє діапазони бінів, а вісь Y дає інформацію про частоту.
Створення гістограми Matplotlib
Щоб створити гістограму Matplotlib, першим кроком є створення діапазону діапазонів, потім розподілення всього діапазону значень на серію інтервалів і підрахунок значень, які потрапляють у кожен з інтервалів. Біни ідентифікуються як послідовні інтервали змінних, які не перекриваються matplotlib.pyplot.hist() функція використовується для обчислення та створення гістограми x.
У наступній таблиці показано параметри, які приймає функція matplotlib.pyplot.hist():
| Атрибут | Параметр |
|---|---|
| х | масив або послідовність масиву |
| бункерів | необов'язковий параметр містить ціле число, послідовність або рядки |
| щільність | Додатковий параметр містить логічні значення |
| діапазон | Додатковий параметр представляє верхній і нижній діапазони бункерів |
| histtype | необов’язковий параметр, який використовується для створення типу гістограми [стовпа, гистограмма, покрокова, покрокова заповнена], за замовчуванням — смужка |
| вирівняти | додатковий параметр керує побудовою гістограми [зліва, справа, посередині] |
| ваги | необов'язковий параметр містить масив вагових коефіцієнтів, які мають такі ж розміри, як x |
| дно | розташування базової лінії кожного біна |
| rwidth | необов'язковий параметр, який є відносною шириною смужок відносно ширини ящика |
| колір | додатковий параметр, який використовується для встановлення кольору або послідовності специфікацій кольорів |
| етикетка | необов’язковий рядок параметра або послідовність рядка для відповідності з кількома наборами даних |
| журнал | додатковий параметр, який використовується для встановлення осі гістограми в логарифмічному масштабі |
Побудова гістограми в Python за допомогою Matplotlib
Тут ми побачимо різні методи побудови гістограми в Matplotlib Python :
- Базова гістограма
- Налаштована гістограма з графіком щільності
- Індивідуальна гістограма з водяним знаком
- Кілька гістограм із підсхемами
- Складена гістограма
- 2D гістограма (діаграма Hexbin)
Створіть базову гістограму в Matplotlib
Давайте створимо базову гістограму в Matplotlib за допомогою Python з деякими випадковими значеннями.
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()> |
Вихід:
Налаштована гістограма в Matplotlib із графіком щільності
Давайте створимо налаштовану гістограму з графіком щільності за допомогою Matplotlib і Seaborn у Python. Отриманий графік візуалізує розподіл випадкових даних із плавною оцінкою щільності.
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()> |
Вихід:
Індивідуальна гістограма з водяним знаком
Створіть налаштовану гістограму за допомогою Matplotlib у Python із певними функціями. Він містить додаткові елементи стилю, такі як видалення позначок осі, додавання відступів і налаштування градієнта кольорів для кращої візуалізації.
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()> |
Вихід:
Кілька гістограм із підсхемами
Давайте згенеруємо дві гістограми поруч за допомогою Matplotlib у Python, кожна зі своїм власним набором випадкових даних і надамо візуальне порівняння розподілів data1> і data2> за допомогою гістограм.
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()> |
Вихід:
Складена гістограма за допомогою Matplotlib
Давайте створимо складену гістограму за допомогою Matplotlib у Python, що представляє два набори даних із різними випадковими розподілами даних. Складена гістограма дає уявлення про комбінований розподіл частот двох наборів даних.
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()> |
Вихід:
Побудуйте двовимірну гістограму (графік Hexbin) за допомогою Matplotlib
Давайте створимо двовимірний діаграму hexbin за допомогою Matplotlib у Python, надаємо візуальне представлення розподілу 2D даних, де шестикутники передають щільність точок даних. Кольорова смуга допомагає інтерпретувати щільність точок у різних областях графіка.
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()> |
Вихід:
Висновок
Побудова гістограм Matplotlib є простим і зрозумілим процесом. За допомогою hist()> ми можемо легко створювати гістограми з різною шириною та краями бункера. Ми також можемо налаштувати вигляд гістограм відповідно до наших потреб