У меня есть следующий код:
import matplotlib.pyplot as plt
cdict = {
'red' : ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
'green': ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
'blue' : ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}
cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)
plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
Таким образом, получается график значений 'v' на осях X против Y, используя указанную цветовую карту. Оси X и Y идеальны, но цветовая карта распространяется между минимальным и максимальным значениями v. Я бы хотел, чтобы цветовая карта находилась в диапазоне от 0 до 1.
Я думал об использовании:
plt.axis(...)
Чтобы установить диапазоны осей, но для этого нужны аргументы только для минимального и максимального значений X и Y, а не для цветовой карты.
Редактировать:
Для ясности, скажем, у меня есть один график, значения которого находятся в диапазоне (0 ... 0,3), и другой график, значения которого (0,2 ... 0,8).
На обоих графиках я хочу, чтобы диапазон цветовой шкалы был (0 ... 1). На обоих графиках я хочу, чтобы этот диапазон цветов был идентичным с использованием полного диапазона Cdict выше (поэтому 0,25 на обоих графиках будет одного цвета). На первом графике все цвета от 0,3 до 1,0 не будут отображаться на графике, но будут отображаться на клавише с цветовой шкалой сбоку. В другом случае все цвета от 0 до 0,2, а также от 0,8 до 1 не будут отображаться на графике, но будут отображаться на цветовой шкале сбоку.