使用Matplotlib和Basemap进行交互式映射

时间:2016-03-23 19:07:13

标签: python matplotlib matplotlib-basemap jupyter-notebook

我对Python和Matplotlib以及ipywidgets没有多少经验。我正在尝试构建一个显示地图的jupyter交互式笔记本,然后过度绘制不同的海洋isobtahs(不断深度的线条)。我希望借助一系列复选框显示/隐藏一些行。问题是在选择某些行后尝试重绘地图。所以策略是 示意性地:

%matplotlib inline
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from ipywidgets import *  
from IPython.display import display

load_map() # loads isobaths from files (arrays of lat,lon pairs)

def draw_mapa(): #draw the map
    mapa = Basemap()
    mapa.drawcoastlines()

def draw_level(level): #draw a specific line (z=level)
    mapa.plot(x,y)

def on_level_change(change): #handler of checkboxes
    draw_mapa()
    if button is True:
       draw_level(level)

display(container) #container with all the checkboxes

  #attaching handler to checkbox through .observe() method
for ilevel in checkboxes:
     ilevel.observe(on_level_change,names='value')

除非我开始与复选框交互,否则一切都很好。每次我选择/取消选择一个框时,都会出现一个带有修正的等深线的新的附加地图。

所以问题是如何超越" overplot"正确地在一个图中避免每次检查一个框时创建新实例。

由于

0 个答案:

没有答案