Python 使用单击“策略=”从bokeh绘图中删除的所有数据;隐藏“;

Python 使用单击“策略=”从bokeh绘图中删除的所有数据;隐藏“;,python,data-visualization,bokeh,Python,Data Visualization,Bokeh,我正试图与博克做一个互动绘图,以在2D图表中可视化t-SNE数据。它应该显示9个服装类别。请参阅下面我的代码和变量 df: 代码: def绘图数据(标题): source=ColumnDataSource( 数据=dict( x=df['x']。值, y=df['y']。值, img=df['imgs']。值, label=df['labels']。值, 颜色=df['colors']。值 ) ) 悬停=悬停工具( 工具提示=“” """ ) 工具=[悬停、“平移”、“滚轮缩放”、“长方体缩放”

我正试图与博克做一个互动绘图,以在2D图表中可视化t-SNE数据。它应该显示9个服装类别。请参阅下面我的代码和变量

df:

代码:

def绘图数据(标题):
source=ColumnDataSource(
数据=dict(
x=df['x']。值,
y=df['y']。值,
img=df['imgs']。值,
label=df['labels']。值,
颜色=df['colors']。值
)
)
悬停=悬停工具(
工具提示=“”
"""
)
工具=[悬停、“平移”、“滚轮缩放”、“长方体缩放”、“重置”]
绘图=图形(绘图宽度=784,绘图高度=600,标题=标题,工具=工具,工具栏位置=“下方”)
图.圆(“x”,“y”,大小=3,颜色='color',图例组='label',源=源)
plot.add_布局(plot.legend[0],“right”)
plot.legend.单击\u policy=“隐藏”
返回图
图=绘图数据(“时尚MNIST-t-SNE”)
显示(图)
输出图:

除了我试图点击任何图例外,情节似乎一切都很好。当用户点击图例中的一个项目时,比如“裤子”,它应该只删除裤子,但会删除所有数据。如果有人能帮忙,我将不胜感激


示例图像:

不幸的是,图例隐藏/静音与自动分组的图例不兼容。您需要为每个组单独调用
circle
(使用
legend\u标签
),以便它们可以单独隐藏

             x         y       labels   colors                             imgs
0     0.017387 -0.270469  T-shirt/top  #1f77b4     ./fashion_mnist_images/0.png
1    -0.306095 -0.099984      Trouser  #ff7f0e     ./fashion_mnist_images/1.png
2     0.066467  0.020477     Pullover  #2ca02c     ./fashion_mnist_images/2.png
3     0.170224  0.000206     Pullover  #2ca02c     ./fashion_mnist_images/3.png
4    -0.029488 -0.157343        Dress  #d62728     ./fashion_mnist_images/4.png
       ...       ...          ...      ...                              ...
9995 -0.024929 -0.099063  T-shirt/top  #1f77b4  ./fashion_mnist_images/9995.png
9996  0.044125 -0.013741        Shirt  #e377c2  ./fashion_mnist_images/9996.png
9997  0.101816  0.103228          Bag  #bcbd22  ./fashion_mnist_images/9997.png
9998  0.260997  0.035555          Bag  #bcbd22  ./fashion_mnist_images/9998.png
9999  0.106888 -0.178166      Trouser  #ff7f0e  ./fashion_mnist_images/9999.png
[10000 rows x 5 columns]
def plot_tsne_data(title):
    source = ColumnDataSource(
        data = dict(
                x = df['x'].values,
                y = df['y'].values,
                img = df['imgs'].values,
                label = df['labels'].values,
                color = df['colors'].values
            )
        )
    hover = HoverTool(
            tooltips="""
            <div>
                <img src="@img" height="28" alt="@img" width="28"></img>
            </div>
            """
        )
    tools = [hover, "pan", "wheel_zoom", "box_zoom", "reset"]
    plot = figure(plot_width=784, plot_height=600, title=title, tools=tools, toolbar_location="below")
    plot.circle("x", "y", size=3, color='color', legend_group='label', source=source)
    plot.add_layout(plot.legend[0], 'right')
    plot.legend.click_policy="hide"
    return plot
        
fig = plot_tsne_data("Fashion MNIST - t-SNE")
show(fig)