Допустим, у меня есть вектор, содержащий целые числа из набора [1,2,3].Я хотел бы создать цветовую карту, в которой 1 всегда отображается синим цветом, 2 всегда красным, а 3 всегда фиолетовым, независимо от диапазона входных данных - например, даже если входной вектор содержит только 1 и 2Мне бы все же хотелось, чтобы они отображались синим и красным соответственно (и фиолетовый в этом случае не используется).
Я пробовал код ниже:
Это работает как ожидалось (данные содержат 1, 2 и 3):
cmap = colors.ListedColormap(["blue", "red", "purple"])
bounds = [0.5,1.5,2.5,3.5]
norm = colors.BoundaryNorm(bounds, cmap.N)
data = np.array([1,2,1,2,3])
sns.heatmap(data.reshape(-1,1), cmap=cmap, norm=norm, annot=True)
Не работает должным образом (данныесодержит только 1 и 2):
cmap = colors.ListedColormap(["blue", "red", "purple"])
bounds = [0.5,1.5,2.5,3.5]
norm = colors.BoundaryNorm(bounds, cmap.N)
data = np.array([1,2,1,2,2])
sns.heatmap(data.reshape(-1,1), cmap=cmap, norm=norm, annot=True)
В первом примере 1 отображается синим цветом, 2 - красным, а 3 - фиолетовым по желанию.
Во втором примере 1 отображается синим цветом, а 2 - фиолетовым, а красный не используется.