У меня есть следующий код:
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 vs Y, используя указанную цветовую палитру. Оси X и Y идеальны, но цветовая палитра распространяется между минимальными и максимальными значениями v. Я хотел бы, чтобы цветная шкала находилась в диапазоне от 0 до 1.
Я думал об использовании:
plt.axis(...)
Чтобы установить диапазоны осей, но это принимает только аргументы для min и max X и Y, а не для цветовой карты.
Edit:
Для наглядности предположим, что у меня есть один граф, диапазон значений которого (0... 0,3), и другой график, значения которого (0,2... 0,8).
В обоих графиках я хочу, чтобы диапазон цветовой панели был (0... 1). В обоих графиках я хочу, чтобы этот диапазон цветов был идентичным, используя весь диапазон cdict выше (поэтому 0,25 на обоих графиках будет одного цвета). На первом графике все цвета от 0,3 до 1,0 не будут отображаться на графике, но будут отображаться в цветной клавише сбоку. В другом случае все цвета от 0 до 0,2 и от 0,8 до 1 не будут отображаться на графике, но в цветовой панели сбоку.