我对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"正确地在一个图中避免每次检查一个框时创建新实例。
由于