Настройка ограничений на палитре matplotlib - PullRequest
0 голосов
/ 25 мая 2020

У меня есть набор данных, в котором концентрация отображается как z-значение. Обратите внимание на нечетные пределы на палитре, которые сопоставлены с пределами z-значения. Я хочу иметь пределы цветовой шкалы go от 0 до некоторого максимального значения (логически первое округленное целое число за пределами z_max).

график концентраций

Здесь это фрагмент кода:

from numpy import *
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
.
.
.

monthly_concentration_array=master_yearly_df.to_numpy()
year_axis_values=master_yearly_df.index.to_numpy()
month_numbers=arange(12)

fig,ax=plt.subplots(figsize=(10,15))

contour_plot=ax.contourf(month_numbers,
    year_axis_values,monthly_concentration_array,levels=40,cmap='rainbow')
colour_bar=fig.colorbar(contour_plot)

Я наивно использовал

colour_bar.set_clim(0,5)

Но я получил предупреждение об устаревании:

MatplotlibDeprecationWarning: функция set_clim устарела в Matplotlib 3.1 и будет удален в 3.3. Вместо этого используйте ScalarMappable.set_clim.

Еще один пост предлагал сделать

colour_bar.mappable.set_clim(0,5)

Но это не сработало. Я очень смущен, потому что подавляющее большинство сообщений et c предшествует matplotlib 3.1, и, к сожалению, у меня недостаточно внутреннего опыта, чтобы понять, что означает ссылка «Вместо этого используйте ScalarMappable.set_clim».

Итак, каков правильный, текущий способ установить пределы цветовой шкалы, чтобы шкала переходила от 0 до 5, когда данные меняются только от 0,15 до 4,7?

большое спасибо!

1 Ответ

2 голосов
/ 25 мая 2020

Вы можете добавить параметр vmin=0, vmax=5 в ax.contourf(), он переопределит масштабирование цвета по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...