Я пытаюсь создать свой собственный colourmap в matplotlib, но я не могу заставить его работать правильно, цвета, которые он выводит, не те, которые я ожидал, я пробовал другие аналогичные ответы на вопросы, но безрезультатно, я не могу правильно настроить свои кортежи.Пользовательские colourmaps в matplotlib
У меня есть график, который имеет интенсивность, идущую от 0 до 1. Я хочу, чтобы интенсивность нуля имела RBG (0,99,136), 0,5 интенсивность, чтобы иметь (159,161,97) и интенсивность 1 иметь (170 , 43,74)
Это то, что я сейчас пытаюсь, но я не понимаю, как его использовать.
from matplotlib.colors import LinearSegmentedColormap
cdict1 = {'blue': ((0.0, 0.0, 0.0),
(0.5, 159/255, 159/255),
(1.0, 170/255, 170/255)),
'green': ((0.0, 99/255, 99/255),
(0.5, 161/255, 161/255),
(1.0, 43/255, 43/255)),
'red': ((0.0, 136/255, 136/255),
(0.5, 97/255, 97/255),
(1.0, 74/255, 74/255))
}
cm = LinearSegmentedColormap('cm', cdict1)
Я его реализации в качестве так
plt.subplot(1, 2, 1)
matplotlib.rcParams.update({'font.size': 24})
plt.imshow(abs(store(0))**2, interpolation='none', extent=[-MaxMin, MaxMin, 0, N*dt], aspect=7, cmap=cm, vmin=0, vmax=1)
plt.xlabel(r'$x$')
plt.ylabel(r'$t$')
'cbar = plt.colorbar()'
plt.subplot(1, 2, 2)
plt.imshow(abs(store(4*x*x))**2, interpolation='none', extent=[-MaxMin, MaxMin, 0, N*dt], aspect=8, cmap=cm, vmin=0, vmax=1)
plt.xlabel(r'$x$')
plt.ylabel(r'$t$')
cbar = plt.colorbar()
cbar.set_label(r'$|\psi(x,t)|^{2}$', fontsize=24)
plt.show()
Это выход я в настоящее время получить
И это то, что я хочу достичь Colourmap I want
«Я не могу заставить его работать» не является достаточным описание проблемы. Что именно вы получаете при использовании этих значений? Кроме того, как именно вы их используете, т. Е. Как вы делаете colormap от этих значений? – ImportanceOfBeingErnest