Метод density
Метод density аксессора plot применяется к DataFrame
или Series и строит график оценки плотности распределения
данных с помощью ядерного сглаживания (Kernel Density Estimation).
Этот метод является псевдонимом для метода kde.
Метод использует библиотеку Matplotlib для визуализации и позволяет
настраивать внешний вид графика через параметры.
Синтаксис
df.plot.density([bw_method, ind, **kwargs])
Основные параметры
Метод принимает следующие основные параметры:
bw_method: str или float, метод определения ширины окна ядра
ind: int или массив, количество точек для оценки плотности
**kwargs: дополнительные аргументы для настройки графика
Пример
Давайте построим график плотности распределения для случайных данных:
import pandas as pd
import numpy as np
# Генерация случайных данных
np.random.seed(42)
data = np.random.normal(0, 1, 1000)
ser = pd.Series(data)
# Построение графика плотности
ser.plot.density()
Пример
Построим графики плотности для нескольких столбцов DataFrame:
import pandas as pd
import numpy as np
np.random.seed(42)
df = pd.DataFrame({
'a': np.random.normal(0, 1, 1000),
'b': np.random.normal(2, 0.5, 1000),
'c': np.random.normal(-1, 0.8, 1000)
})
# Построение графиков плотности для всех столбцов
df.plot.density()
Пример
Настроим график плотности с помощью параметра bw_method
для изменения сглаживания:
import pandas as pd
import numpy as np
np.random.seed(42)
data = np.random.normal(0, 1, 1000)
ser = pd.Series(data)
# График с более сильным сглаживанием
ser.plot.density(bw_method=0.5)
Пример
Укажем количество точек для оценки плотности с помощью параметра ind:
import pandas as pd
import numpy as np
np.random.seed(42)
data = np.random.normal(0, 1, 1000)
ser = pd.Series(data)
# Оценка плотности в 50 точках
ser.plot.density(ind=50)
Пример
Используем дополнительные параметры для настройки внешнего вида графика:
import pandas as pd
import numpy as np
np.random.seed(42)
df = pd.DataFrame({
'a': np.random.normal(0, 1, 1000),
'b': np.random.normal(2, 0.5, 1000)
})
# График с настройками цвета и прозрачности
df.plot.density(color=['red', 'blue'], alpha=0.5, linewidth=2)