I have a scatter plot that gets its data from a ColumnDataSource. Is there a way to change the selected points with my python program, rather than with a selection tool? I can edit the selected indices of the ColumnDataSource like this:
We probably need to make .selected a proper Bokeh model. For now, there is no way to detect changes "inside" the .selected dict. So, short term solution: copy .selected, update the copy, and then reassign entire copy as value of .selected at once. The automagic machinery can detect when .selected changes as a whole.
Bryan
···
On Jun 2, 2016, at 2:08 PM, Yanick MacAngus <[email protected]> wrote:
Hi,
I have a scatter plot that gets its data from a ColumnDataSource. Is there a way to change the selected points with my python program, rather than with a selection tool? I can edit the selected indices of the ColumnDataSource like this:
source.selected["1d"]["indices"] = selected_dict
On Thursday, June 2, 2016 at 4:26:39 PM UTC-3, Bryan Van de ven wrote:
We probably need to make .selected a proper Bokeh model. For now, there is no way to detect changes “inside” the .selected dict. So, short term solution: copy .selected, update the copy, and then reassign entire copy as value of .selected at once. The automagic machinery can detect when .selected changes as a whole.
Bryan
On Jun 2, 2016, at 2:08 PM, Yanick MacAngus [email protected] wrote:
Hi,
I have a scatter plot that gets its data from a ColumnDataSource. Is there a way to change the selected points with my python program, rather than with a selection tool? I can edit the selected indices of the ColumnDataSource like this:
source.selected[“1d”][“indices”] = selected_dict
But that doesn’t change the points on the plot.
Thanks,
–
You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
Hi Yanick and Bryan,
could either of you please post a working example? I am trying to do the same thing without success. Specifically, what I am trying to do is to drive a data selection by operating a slider that controls a y-axis value (indicated in the plot by an horizontal line). The selection should comprise all data values below/above that y value. I would like to implement the data selection within the Slider.on_change Python callback.
Conceptually, here is what I have (I am running this with >>bokeh serve …):
Data source and plot
source = ColumnDataSource(…)
figure(…).circle(‘x’, ‘y’, source = source, …)
Callback
def slider_selection(attrname, old, new):
# Should update source.selected and
# trigger the plot update correspondingly
On Thursday, 2 June 2016 22:20:27 UTC+2, Yanick MacAngus wrote:
That worked thanks!
On Thursday, June 2, 2016 at 4:26:39 PM UTC-3, Bryan Van de ven wrote:
We probably need to make .selected a proper Bokeh model. For now, there is no way to detect changes “inside” the .selected dict. So, short term solution: copy .selected, update the copy, and then reassign entire copy as value of .selected at once. The automagic machinery can detect when .selected changes as a whole.
Bryan
On Jun 2, 2016, at 2:08 PM, Yanick MacAngus [email protected] wrote:
Hi,
I have a scatter plot that gets its data from a ColumnDataSource. Is there a way to change the selected points with my python program, rather than with a selection tool? I can edit the selected indices of the ColumnDataSource like this:
source.selected[“1d”][“indices”] = selected_dict
But that doesn’t change the points on the plot.
Thanks,
–
You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
Since I arrived here from Google in 2020, I just wanted to mention that this has been fixed in bokeh long ago - you can now simply modify source.selected.indices and bokeh will update the plot correctly.