I am looking for an interactive visualization python tool that would allow me to select a number of data points and then write only those data points into a new data frame, numpy array, etc. For example, I'd like to visualize all of the equity trades a desk of traders did in one day along with tick-by-tick price data (y axis price, x axis time) then select a subset of them and send them to a new dataframe for further processing. Does anything like that exist? I thought Holoviews might but haven't figured it out yet. Thanks, Colin
Asked
Active
Viewed 759 times
1 Answers
0
Indeed you can do this with Holoviews. In this example it is used in combination with Bokeh. Save the script file, open a command window in the directory of the file and execute: "bokeh serve --myscript.py --show". The "arr" in the code is the array of the selected datapoints.
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'
Strictly you don't need holoviews, you can do this also with bokeh alone. There are examples on the bokeh website.

Joris
- 1,158
- 1
- 16
- 25