首页 > 解决方案 > Jupyter:单击散点图中的点时触发输出,该点替换以前的输出(而不是被附加)

问题描述

我正在尝试在 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 情节?

此外,如果有一个易于实施的一般任务的优越解决方案(点击散点图中的一个点时触发一个新图),我想知道

谢谢!

标签: jupyter-notebookplotlyseaborn

解决方案


推荐阅读