Гістограма
Гістограми відображають частоту або ймовірнісний розподіл змінної за допомогою вертикальних бінів однакової ширини, які часто називають стовпчиками.
Модуль pyplot
надає функцію hist
для створення гістограм. Обов'язковим параметром є дані (x
), які можуть бути масивом або послідовністю масивів. Якщо передано кілька масивів, кожен з них відображається різним кольором.
import pandas as pd import matplotlib.pyplot as plt # Loading the dataset with the average yearly temperatures in Boston and Seattle url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Creating a histogram plt.hist(weather_df['Seattle']) plt.show()
Інтервали та Висота
Об'єкт Series
, що містить середньорічні температури в Сіетлі, було передано у функцію hist()
. За замовчуванням дані поділяються на 10 рівних інтервалів від мінімального до максимального значення. Однак видно лише 9 стовпців, оскільки другий інтервал не містить жодного значення.
Висота кожного стовпця за замовчуванням дорівнює частоті значень у цьому інтервалі (кількість їх появ).
Кількість Стовпців
Ще один важливий, але необов'язковий параметр — це bins
, який приймає або кількість стовпців (ціле число), або послідовність чисел, що визначають межі стовпців, або рядок. У більшості випадків достатньо передати кількість стовпців.
Існує кілька методів визначення ширини стовпців гістограми. У цьому прикладі використовується формула Стерджеса, яка обчислює оптимальну кількість стовпців на основі розміру вибірки:
Тут n
— це розмір масиву даних.
Ви можете ознайомитися з додатковими методами обчислення кількості бінів тут.
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Specifying the number of bins plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df)))) plt.show()
Кількість рядків у DataFrame
становить 26 (розмір Series
), тому підсумкова кількість бінів дорівнює 5.
Наближення ймовірнісної густини
Щоб переглянути наближення ймовірнісної густини, встановіть параметр density
у значення True
у функції hist
.
Тепер висота кожного стовпця обчислюється за формулою:
де:
— загальна кількість значень у наборі даних;
— кількість значень у стовпці;
— ширина стовпця.
Це гарантує, що загальна площа під гістограмою дорівнює 1, що відповідає ключовій властивості функції ймовірнісної густини (PDF).
import pandas as pd import matplotlib.pyplot as plt import numpy as np url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/weather_data.csv' weather_df = pd.read_csv(url, index_col=0) # Making a histogram a probability density function approximation plt.hist(weather_df['Seattle'], bins=1 + int(np.log2(len(weather_df))), density=True) plt.show()
Це надає наближення функції ймовірнісної густини для даних температури.
Якщо бажаєте дізнатися більше про параметри функції hist()
, зверніться до hist()
документації.
Swipe to start coding
Створення апроксимації функції щільності ймовірності за допомогою вибірки зі стандартного нормального розподілу:
- Використання відповідної функції для побудови гістограми.
- Використання
normal_sample
як даних для гістограми. - Вказання кількості бінів як другого аргументу за формулою Стерджеса.
- Перетворення гістограми на апроксимацію функції щільності ймовірності шляхом правильного задання крайнього правого аргументу.
Рішення
Дякуємо за ваш відгук!