我正在寻找一个交互式可视化 python 工具,它允许我选择一些数据点,然后只将这些数据点写入一个新的数据框、numpy 数组等。例如,我想可视化所有的一个交易员在一天内完成的股票交易以及逐笔价格数据(y 轴价格,x 轴时间)然后选择其中的一个子集并将它们发送到新的数据框以进行进一步处理。有这样的东西存在吗?我认为 Holoviews 可能但还没有弄清楚。谢谢,科林
问问题
473 次
1 回答
0
事实上,你可以用 Holoviews 做到这一点。在此示例中,它与 Bokeh 结合使用。保存脚本文件,在文件目录下打开命令窗口,执行:“bokeh serve --myscript.py --show”。代码中的“arr”是所选数据点的数组。
import numpy as np
import holoviews as hv
import holoviews.plotting.bokeh
renderer = hv.renderer('bokeh')
points = hv.Points(np.random.randn(1000,2 )).opts(plot=dict(tools=['box_select', 'lasso_select']))
selection = hv.streams.Selection1D(source=points)
def selected_info(index):
arr = points.array()[index]
print(arr)
if index:
label = 'Mean x, y: %.3f, %.3f' % tuple(arr.mean(axis=0))
else:
label = 'No selection'
return points.clone(arr, label=label).opts(style=dict(color='red'))
layout = points + hv.DynamicMap(selected_info, streams=[selection])
doc = renderer.server_doc(layout)
doc.title = 'HoloViews App'
严格来说,你不需要全息视图,你也可以单独使用散景来做到这一点。散景网站上有示例。
于 2018-01-06T09:38:12.973 回答