Почему часть моего контурного графика показывает белый цвет? - PullRequest
0 голосов
/ 30 апреля 2020

Я использую Python matplotlib.pyplot.contourf, чтобы создать контурную диаграмму моих данных с цветной полосой. Я делал это успешно бесчисленное количество раз, даже с другими слоями той же переменной. Однако когда значения становятся небольшими (порядка 1E-12), части контура отображаются белым цветом. Белый цвет также не отображается на цветной панели. Кто-нибудь знает, что вызывает это и как это исправить? Неисправный контур прилагается ниже.

Bad contour

a1 = plt.contourf(np.linspace(1,24,24),np.linspace(1,20,20),np.transpose(data[:,:,15]))
plt.colorbar(a1)
plt.show()

1 Ответ

1 голос
/ 01 мая 2020

tl; dr

Учитывая новую информацию, matplotlib не смог установить правильное количество уровней ( см. Параметры в документации) для ваших данных, оставив данные без печати. Чтобы это исправить, вам нужно указать matplotlib расширить пределы либо plt.contourf(..., extend="max"), либо plt.contourf(..., extend="both")

enter image description here

Обширный ответ

Есть несколько причин, по которым contourf() показывает белые зоны с цветовой картой, которая не включает белый .

Значения NaN

Значения NaN никогда не отображаются.

enter image description here

Маскированные данные

Если вы замаскируете данные перед построением, они не появятся на графике. Но вы должны знать, замаскировали ли вы свои данные.

enter image description here

Хотя вы можете незаметно замаскировать свои данные, если используете что-то вроде Tick locator = LogLocator ().

enter image description here

Matplotlib не может установить правильные уровни для ваших данных

Иногда matplotlib не ' Установите правильные уровни, оставив некоторые данные без построения графика.

enter image description here

Чтобы исправить это, вы можете использовать plt.contourf(..., extend=EXTENDS), где EXTENDS может быть "neither", "both", "min", "max"

enter image description here

Грубая сетка

Контур отображает пробелы над конечными данными. Прошлые ответы не верны

...