#python #matplotlib
Вопрос:
У меня есть тепловая карта для нескольких строк, и эти строки разделены на несколько категорий категорий. Используя matplotlib (seabon), я могу построить тепловую карту и ее цветовую панель. И попробовал цветовую карту, чтобы также отобразить категорию.
Вот мой небольшой демо-код.
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, (ax1, ax2) = plt.subplots(1, 2, gridspec_kw={'width_ratios': [10, 1]})
df = pd.DataFrame(np.random.random((10, 5)), columns=["A", "B", "C", "D", "E"])
df['category'] = np.random.randint(low=0, high=3, size=(10,))
df = df.sort_values(['category'])
sns.heatmap(df[["A", "B", "C", "D", "E"]], annot=True, annot_kws={"size": 7}, cbar=True, ax=ax1)
sns.heatmap(df[['category']], ax=ax2, annot=True, cbar=False)
ax2.axes.get_yaxis().set_ticks([])
print(df)
plt.show()
В приведенном выше примере я хотел добавить столбец категории, чтобы аннотировать строки, вероятно, с помощью столбчатой диаграммы. Здесь я попытался использовать тепловую карту, скрыв цветовую панель и показав аннотацию. Но аннотации повторяются. Есть ли какой-нибудь хороший способ контролировать это?
Желаемый результат:
Что-то вроде этого (этот пример я скопировал из Интернета).
источник: