heltonbiker, вы нашли решение своей проблемы?Я случайно наткнулся на этот вопрос, и некоторое время у меня была та же проблема.Я попробовал предложения Жени, однако они тоже не работают для меня.Решение проблемы, несмотря на то, что это не реальное решение, а скорее обходной путь, простое: просто повторите ту же команду contourf
, и это волшебным образом избавит от паразитных контуров.
Как указано в ОПпри заполнении контура (contourf
) появляются паразитные контуры с интервалами, слишком близкими друг к другу.Мы можем воспроизвести это поведение, установив очень большое количество интервалов, например:
plt.contourf(plon,plat,ssh,np.arange(-1,1.001,0.001)) # 2001 intervals
Это дает нам в качестве вывода:
![enter image description here](https://i.stack.imgur.com/5Og9v.png)
Тонкие паразитные контурыявно влияет на чистый цвет контура заливки.
Если вы выполните команду дважды:
plt.contourf(plon,plat,ssh,np.arange(-1,1.001,0.001)) # Not once,
plt.contourf(plon,plat,ssh,np.arange(-1,1.001,0.001)) # but twice!
даст мне:
![enter image description here](https://i.stack.imgur.com/PMRx2.png)
Теперь намного лучше.Вот самая лучшая из трех последовательных contourf
команд:
![enter image description here](https://i.stack.imgur.com/l7ajG.png)
Я больше не вижу тонких контуров!К сожалению, это может значительно замедлить ваши сценарии, в зависимости от размера массива и количества интервалов контура.Паразитные контуры выделяются больше, если используется больше интервалов контураДля меня обычно лучше всего использовать интервалы от 50 до 100 и дважды contourf
.
Обратите внимание, что используемая мной версия matplotlib не самая последняя.Эта проблема могла быть решена в версии 1.1.0
.Если да, пожалуйста, дайте мне знать.
Python 2.7.1 |EPD 7.0-2 (32-bit)| (r271:86832, Nov 29 2010, 13:52:51)
In [1]: matplotlib.__version__
Out[1]: '1.0.1'