Я хочу отменить свою настраиваемую цветовую карту, которая выглядит так
import matplotlib.cm as cm
import matplotlib as mpl
cm.register_cmap(name='owb',
data = {'red': ((0.0, 1.0, 1.0), # orange
(0.5, 1.0, 1.0), #
(1.0, 0.0, 0.0)), # blue
'green': ((0.0, 0.6, 0.6), # orange
(0.5, 1.0, 1.0), #
(1.0, 0.0, 0.0)), # blue
'blue': ((0.0, 0.0, 0.0), # orange
(0.5, 1.0, 1.0), #
(1.0, 1.0, 1.0)) # blue
})
Теперь, когда я уже давно ищу решение этой проблемы, я наткнулся на эту ветку:
Я пробовал использовать .reversed()
здесь:
data = {'red': ((0.0, 1.0, 1.0), # orange
(0.5, 1.0, 1.0), #
(1.0, 0.0, 0.0)), # blue
'green': ((0.0, 0.6, 0.6), # orange
(0.5, 1.0, 1.0), #
(1.0, 0.0, 0.0)), # blue
'blue': ((0.0, 0.0, 0.0), # orange
(0.5, 1.0, 1.0), #
(1.0, 1.0, 1.0)) # blue
}
owb = mpl.colors.ListedColormap('OrWhBlu', data)
owb_reversed = owb.reversed()
Здесь я получил следующую ошибку:
TypeError: unsupported operand type(s) for +: 'dict' and 'str'
но мне просто не удалось заставить его работать.
Пожалуйста, дайте мне знать, что я делаю не так.
Ура
РЕДАКТИРОВАТЬ: Я попробовал решение Костаса, и, поскольку мне нужно использовать colormap_r в другой функции, где требуется имя cmap, я попытался решить его следующим образом:
cmap_r = cm.register_cmap(name="owb_r", cmap=owb_r)
функция, в которой она вызывается:
plt.pcolormesh(xx, yy, -Z, cmap="owb_r")
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=y_2d, cmap="owb_r",
edgecolors='k')
теперь я получаю следующую ошибку: ValueError: Invalid RGBA argument: 'u'