Метод hexbin
Метод hexbin аксессора plot применяется к DataFrame и создаёт гексагональную бинальную диаграмму. Этот метод требует указания двух колонок: по оси x и по оси y. Основное преимущество такого графика - возможность наглядно показать плотность распределения точек в двумерном пространстве, особенно когда данных много. Метод возвращает объект Axes библиотеки Matplotlib.
Основные параметры метода: x и y - названия колонок для осей; gridsize - количество гексагонов по горизонтали (по умолчанию 100); C - колонка для агрегации значений вместо подсчёта; reduce_C_function - функция агрегации (по умолчанию np.mean); cmap - цветовая карта для заливки гексагонов.
Синтаксис
df.plot.hexbin(x, y, gridsize=100, C=None, reduce_C_function=np.mean, cmap='viridis', **kwargs)
Пример
Создадим DataFrame со случайными данными и построим простую гексагональную диаграмму:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
df = pd.DataFrame({
'a': np.random.randn(1000),
'b': np.random.randn(1000) * 0.5 + 0.2
})
df.plot.hexbin(x='a', y='b', gridsize=20)
plt.show()
Результат выполнения кода:
График с гексагональными бинами, цвет которых показывает количество точек в каждой ячейке.
Пример
Изменим размер сетки и цветовую карту для улучшения визуализации:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(7)
df = pd.DataFrame({
'a': np.random.randn(500) * 2,
'b': np.random.randn(500) * 1.5
})
df.plot.hexbin(x='a', y='b', gridsize=30, cmap='plasma')
plt.show()
Результат выполнения кода:
График с более мелкой сеткой и другой цветовой картой.
Пример
Используем параметр C для отображения среднего значения третьей колонки в каждом бине:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(15)
df = pd.DataFrame({
'a': np.random.randn(800),
'b': np.random.randn(800) * 0.8,
'c': np.random.randn(800) * 2 + 3
})
df.plot.hexbin(x='a', y='b', C='c', reduce_C_function=np.mean, gridsize=25, cmap='coolwarm')
plt.show()
Результат выполнения кода:
График, где цвет гексагонов соответствует среднему значению колонки 'c' в каждой ячейке.