gpt4 book ai didi

python - 如何使用 Datashader + Bokeh 后端在 HoloViews 中进行链接数据选择

转载 作者:行者123 更新时间:2023-11-28 20:16:06 24 4
gpt4 key购买 nike

让我首先补充一下 HoloViews 开发人员,这真是太棒了。只有很多部分,很难弄清楚如何将它们放在一起来做我想做的事:)。

我在这里尝试进行链接的多维数据绘图,即我想要几个图来显示不同维度上相同数据的 View 。然后我想利用 Bokeh 选择工具在其中一个图中选择数据,并查看它在其他图中的位置。但是我还需要使用 Datashader 来完成它,因为我的数据集很大。

这是我目前所拥有的(在 Jupyter notebook 中运行,使用 python 2)

import numpy as np
import pandas as pd
import holoviews as hv
import holoviews.operation.datashader as hvds
hv.notebook_extension('bokeh')
%opts Scatter [tools=['box_select', 'lasso_select']] (size=10 nonselection_color='red' color='blue') Layout [shared_axes=True shared_datasource=True]

# Create some data to plot
x1 = np.arange(0,10,1e-2)
x2 = np.arange(0,10,1e-2)
X1,X2 = np.meshgrid(x1,x2)
x1 = X1.flatten()
x2 = X2.flatten()
x3 = np.sin(x1) * np.cos(x2)
x4 = x1**2 + x2**2

# Pandas dataframe object from the data
print "Creating Pandas dataframe object"
df = pd.DataFrame.from_dict({"x1": x1, "x2": x2, "x3": x3, "x4": x4})

# Put the dataframe into a HoloViews table
dtab = hv.Table(df)

# Make some linked scatter plots using datashader
scat1 = dtab.to.scatter('x1', 'x2', [])
scat2 = dtab.to.scatter('x1', 'x3', [])
scat3 = dtab.to.scatter('x2', 'x4', [])
hvds.datashade(scat1) + hvds.datashade(scat2) + hvds.datashade(scat3)

这会产生以下内容

enter image description here

这非常简单。但是,它并不能完全满足我的要求。数据范围的变化和平移是相关联的,这非常酷,但是一个图范围之外的数据仍然可以绘制在其他图上。我想让这些数据从所有图中消失,这样我只能看到落在所有已查看数据范围内的数据,这样就可以动态选择一些超立方体数据以在多维空间中突出显示。

此外,最好让 Bokeh 选择工具以相同的方式工作,这样我就可以在一个图上选择一些点,然后让它们在其他图上全部显示为红色或其他颜色。尽管要求“box_select”和“lasso_select”,但我什至根本没有得到选择工具。虽然我可能不正确地要求他们,但我不太清楚 HoloViews 如何传递选项。

最佳答案

您可以使用 HoloViews Streams选择仅使用当前可见点显示的数据。有一个例子:https://anaconda.org/petrenko/linking_datashaders

关于python - 如何使用 Datashader + Bokeh 后端在 HoloViews 中进行链接数据选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44287203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com