Я использую pcolormesh, чтобы показать результаты по некоторому алгоритму, который я запускаю. создать обычную сетку для некоторых x_min, x_max
и т.д., и определить мой цвет картыПолучение правильных цветов для pcolormesh
h = (x_max - x_min)/1000.
xx, yy = numpy.meshgrid(numpy.arange(x_min, x_max, h), numpy.arange(y_min, y_max, h))
colours = ("blue", "green", "red")
cmap = colors.ListedColormap(colours)
, а затем сделать plt.pcolormesh(xx, yy, Z, alpha=0.7, cmap=cmap)
, где Z является результатом моего предсказания (это может быть любой 0, 1 или 2 значение, Это не имеет значения).
Скажите Z = numpy.zeros(xx.shape)
Я должен видеть все синее, Z = numpy.ones(xx.shape)
Я должен видеть зеленый, и Z = 2*numpy.ones(xx.shape)
Я должен видеть красный цвет, или так я думал. Вместо этого я всегда вижу синий. Если добавить эти строки:
Z[0] = 0
Z[1] = 1
Z[2] = 2
все работает, как ожидалось. Похоже, что результат не имеет всех возможных результатов (0,1,2), тогда он по умолчанию использует только первый цвет, синий, даже если результат - все 2s, и я хочу красный.
Как я могу заставить его иметь желаемые цвета, т. Е. Синий для 0, зеленый для 1 и красный для 2, в каждом случае?
Оба великие ответы, как заслуживающие +1, хотя я в конечном итоге, используя Клима. – user