Побудова гістограми в Python за допомогою Matplotlib

Побудова гістограми в 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()>

Вихід:

Гістограма в Python за допомогою Matplotlib

Налаштована гістограма в 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

Індивідуальна гістограма з водяним знаком

Створіть налаштовану гістограму за допомогою 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

Кілька гістограм із підсхемами

Давайте згенеруємо дві гістограми поруч за допомогою 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()>

Вихід:

Скріншот-2023-12-05-222526

Складена гістограма за допомогою 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()>

Вихід:

Скріншот-2023-12-05-222933

Побудуйте двовимірну гістограму (графік 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()>

Вихід:

Скріншот-2023-12-05-222826

Висновок

Побудова гістограм Matplotlib є простим і зрозумілим процесом. За допомогою hist()> ми можемо легко створювати гістограми з різною шириною та краями бункера. Ми також можемо налаштувати вигляд гістограм відповідно до наших потреб