У мене є такий код:
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(...)
Для встановлення діапазонів осей, але для цього потрібні лише аргументи для min та max X та Y, а не кольорова карта.
Редагувати:
Для наочності скажімо, що у мене є один графік, значення якого (0 ... 0,3), та інший графік, значення якого (0,2 ... 0,8).
В обох графіках я хочу, щоб діапазон кольорової смуги був (0 ... 1). В обох графіках я хочу, щоб цей діапазон кольорів був ідентичним, використовуючи повний діапазон cdict вище (тому 0,25 в обох графіках будуть однаковим кольором). У першому графіку всі кольори від 0,3 до 1,0 не будуть відображатися у графіку, але будуть у кольоровій клавіші збоку. В іншому всі кольори між 0 і 0,2 та між 0,8 та 1 не відображатимуться на графіку, а будуть у кольоровій смузі збоку.