У меня есть график значений, выбранных из набора [-1, 0, 1], и каждое значение сопоставлено с цветом. Однако возможно иметь выборку, в которой отображаются только два разных значения ([-1,0], [-1,1], [0,1]), и если это произойдет, тогда цветовая схема должна адаптироваться соответственно
Если количество уникальных значений равно 3, этот код работает
ax2 = plt.subplot2grid((n_rows , 1), (2, 0))
colors = [(216/255, 24/255, 24/255), (1, 1, 1), (143/255, 188/255, 143/255)]
positions = df['long'].astype(int) - df['short'].astype(int)
cm = LinearSegmentedColormap.from_list('mycols', colors, N=3)
ax2.pcolorfast(ax2.get_xlim(), ax2.get_ylim(), positions.values[np.newaxis], cmap=cm, alpha=0.5)
Результат

Как мне управлять сценариями, где нужны только два цвета?
Я думаю, что это контролирует количество сегментов, но я не знаю, как учесть цветовую схему
cm = LinearSegmentedColormap.from_list('colores', colors, N=len(list(set(positions))))