Matplotlib: фиксированные границы на цветной панели графика полярного контура

Как сказано в заголовке, я пытаюсь исправить значения цветовой шкалы (vmin = -3 и vmax = + 3) графика полярного контура. Я собираюсь сгенерировать несколько десятков таких графиков, и автоматическое масштабирование шкалы цветов очень затрудняет сравнение.

Сам сюжет генерируется следующим кодом:

fig, ax = subplots(subplot_kw=dict(projection='polar'))
cax = ax.contourf(thetas, r, values, 130)
cb1 = fig.colorbar(cax)

Я часами просматривал http://matplotlib.sourceforge.org и до сих пор не нашел решения. Я бы указал мне правильное направление.


person Sasha    schedule 19.08.2012    source источник


Ответы (1)


Вы можете сделать это самостоятельно, пройдя контурные уровни.

Вместо того, чтобы просто пытаться установить vmin = 3, vmax = 3, выберите 130 значений между vmin и vmax, чтобы они были одинаковыми для всех графиков, независимо от диапазона данных.

Пытаться:

contour_levels = arange(-3, 3, 0.05)

fig, ax = subplots(subplot_kw=dict(projection='polar'))
cax = ax.contourf(thetas, r, values, contour_levels)
cb1 = fig.colorbar(cax)
person Eric    schedule 19.08.2012
comment
Прежде всего, спасибо за ваши усилия. К сожалению, добавление этой строки кода ничего не дает. иногда мои данные будут больше 3 или меньше -3. Мне сложно понять мотивацию вашей Идеи. Мой набор данных - 800 точек. Для каждой точки у меня есть (тета, r, значение). Значения 800 точек иногда превышают диапазон [-3,3], а иногда они укладываются в [-0,1,0,1]. - person Sasha; 19.08.2012
comment
Я добавил линии и изменил среднюю линию. Вам нужно как установить contour_levels, так и передать его в contourf вместо 130. Явно передавая уровни контура, вы убедитесь, что шкала цвета всегда покрывает эти уровни, а не просто переходите от минимального к максимальному значению данных. - person Eric; 19.08.2012
comment
Я пропустил это изменение. Это сделало это. Большое спасибо за помощь! - person Sasha; 19.08.2012