Рисование эллипсов на проекциях базовой карты matplotlib — как расширить класс базовой карты

Я новичок в python и matplotlib (и stackoverflow). Не могли бы вы рассказать мне, как мне расширить класс базовой карты с помощью этой функции эллипса? Исходный пост «Рисование эллипсов на проекциях базовой карты matplotlib» от regeirk — это именно то, что мне нужно, но я не знаю, как расширить класс.

Вот код из regeirk: Рисование эллипсов на проекциях базовой карты matplotlib

Я не знаю, как это реализовать, расширяя класс базовой карты. Я никогда не делал этого раньше.

Надеюсь, я предоставил всю информацию.

Спасибо.


person user3347056    schedule 24.02.2014    source источник
comment
Привет. Вы можете просто отредактировать свой исходный пост stackoverflow.com/questions/21996165/ вместо создания нового. На самом деле, вы должны сделать это, а затем удалить этот, чтобы избежать дубликатов. Кнопка «Изменить» находится прямо под постом (между «Поделиться» и «Отметить»).   -  person Spencer Hill    schedule 25.02.2014
comment
Спасибо, Спенсер. Я просто удалил старый, так как это самый полный пост.   -  person user3347056    schedule 26.02.2014


Ответы (1)


С помощью python вы можете расширить класс, не изменяя сам исходный код базовой карты. Простой импорт следующего кода (возможно, просто вставив его в ваш скрипт) изменит функциональность класса (в этом случае мы также можем изменить класс Basemap):

from mpl_toolkits.basemap import Basemap

def ellipse(self, x0, y0, a, b, n, ax=None, **kwargs):
    print 'Hello world!'

Basemap.ellipse = ellipse

Теперь, когда вы создаете экземпляр базовой карты, он будет иметь соответствующий метод «эллипс».

См. также http://dietbuddha.blogspot.co.uk/2012/12/python-metaprogramming-dynamically.html

person pelson    schedule 18.08.2014