2015-06-30 3 views
5

В продолжение моего предыдущего вопроса: How to superimpose figures in matplotlib Мне хотелось бы знать, как создать объект многократного использования basemap. Моя проблема заключается в том, что basemap не является объектом pyplot, поэтому решение, которое я получил, хорошо работает на figures/axes, но не на basemap объектах.Как создать многоразовую базовую карту

Я попытался оглянуться и найти решение, но не смог найти ни одного, просто обсуждения.

+0

Не должно быть причин, чтобы подход, указанный в вопросе, с которым вы связаны, не будет работать с осями базовой карты. –

+0

Спасибо @joe, но он не работает точно так же. Объекты «basemap» не являются индивидуальными объектами «pyplot». –

+1

Нет, это не так, но они все еще являются объектами. Вы можете передать их в функцию, которая затем называет их методы просто прекрасными. У них есть методы построения, очень похожие на экземпляр «Axes», но у них есть и другие. Если вам нужен базовый экземпляр Axes, вы можете получить его с помощью map._check_ax() 'где' map' - ваш базовый объект. Можете ли вы рассказать о том, что вы пытаетесь сделать? –

ответ

1

Благодаря @JoeKington здесь и @EdSmith на How to superimpose figures in matplotlib, я смог понять, как добиться того, чего я хотел: повторно использовать объекты базовой карты и передать их.

Я сделал это так:

  1. Создано base_map.py, который имеет две функции: plot(), которые создают объект карты и сделать некоторые свойства и еще один, set_a_map() что создать пустой объект карты.
  2. В других модулях я добавил к сюжету функция в map=None свойства, и в каждой функции я добавил:

    Так что в случае, если ни один объект на карте не передается в другую функцию, функцию создаст новый объект карты.

  3. В моем графике функции, вместо использования plt.imshow(...) например, я использую map.imshow(...). Таким образом, мои данные будут отображаться над картой.

Благодарим за терпение и действительно полезные комментарии!

Смежные вопросы