我正在尝试在Jupyter中构建交互式散点图,在该点上单击将触发基于单击的点绘制另一个(非交互式)Seaborn散点图。我设法使用plotly(这是一个玩具示例)
import plotly.graph_objects as go
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
%matplotlib inline
x = np.arange(10)
f = go.FigureWidget([go.Scatter(x=x, y=2*x)])
scatter = f.data[0]
f.layout.hovermode = 'closest'
# create our callback function
def click_callback(trace, points, selector):
sns.lineplot(np.arange(10), [points.ys[0]]*10)
plt.show()
scatter.on_click(click_callback)
f
问题在于,每一个新的Seaborn地块都将附加到该单元格上,而我希望它可以替换前一个。如果我尝试使用IPython.display.clear_output(),原始的散点图也会被擦除。如何在绘制新图之前仅清除Seaborn图?
此外,如果对于一般任务有一个易于实现的高级解决方案(单击散点图中的点时触发新图),我想知道
谢谢!