#python #seaborn #cluster-analysis #visualization
#python #seaborn #кластерный анализ #визуализация
Вопрос:
Я использую seaborn clustermap для визуализации результатов кластеризации (каждая строка представляет отдельный кластер). Кроме того, у меня есть данные о том, какой процент от общего объема данных присваивается каждому кластеру. Интересно, как я могу добавить эту информацию в карту кластеров. Например, можно ли изменить высоту строки clustermap таким образом, чтобы каждая строка имела высоту, пропорциональную размеру кластера, который она представляет?
Ответ №1:
Просматривая документацию Seaborn и результирующие документы Matplotlib, я не думаю, что это возможно с помощью seaborn. Библиотека matplotlib позволит вам создавать pcolormesh (который использует Seaborn) любым удобным для вас способом.
Например, посмотрите на пример ниже. Вы можете указать значения x и y, которые определяют высоту и ширину строк / столбцов в заданной точке. Таким образом, с помощью matplotlib вы могли бы передать значения ширины, о которых вы говорили, и создать свою цветовую сетку, хотя весь процесс был бы не таким простым, как использование sns.clustermap(iris)
!. Смотрите Код ниже для получения дополнительной информации.
# evenly spaced integers
x1 = np.array([1,2,3,4,5,6])
y1 = np.array([1,2,3,4,5,6])
# uneven spacing between each item
x2 = np.array([1,1.5,3.8,4,5,6])
y2 = np.array([1,1.5,3,4.4,5,6])
# fill with random data
z = np.random.randint(0,32,25).reshape(nrows,ncols)
# create plots
fig, (ax1,ax2) = plt.subplots(nrows=2, ncols=1,figsize=(10,10))
ax1.pcolormesh(x1, y1, z, cmap='Blues', edgecolors='black')
ax2.pcolormesh(x2, y2, z, cmap='Blues', edgecolors='black')
plt.show()
Результат: