☰Read-only archive⌕
Looking for help with Bokeh?

This is a read-only archive. Ask questions and join the conversation on GitHub.

Visit Community Support on GitHub →
Archived discussions · Captured October 28, 2026

Glyphs disappearing when updating plots

Community Support
Christopher_Nolan
Christopher_Nolan

Hi folks, I’m having an issue creating glyphs that I can update on the bokeh server. The provided animation examples work for me, but when I try to create my own, the glyphs disappear when I update. I’ve tried using the high level plotting syntax:

import bokeh.plotting as bp

import bokeh.objects as bo

bp.output_server(‘test’)

bp.figure(title=‘Test’)

bp.hold()

bp.wedge([0.5], [0.5],

     radius=0.04, radius_units='data',

     start_angle=[7*np.pi/8],

     end_angle=[9*np.pi/8],

     fill_color='black',

     fill_alpha=1.0)

renderers = [r for r in bp.curplot().renderers if isinstance(r, bo.Glyph)]

ds = renderers[0].data_source

ds.data[‘x’] = 0.6

bp.cursession().store_objects(ds)

If I omit the last line, I get a wedge in the original position. If I try to update the server-side object, the axes update to the new position of the glyph, but the wedge disappears. I’ve also tried building up the plot myself from a ColumnDataSource and Plot / Wedge objects, with the same result. Can anyone point out where I’m going wrong here?

Cheers,

Chris.

⌁   Link to post
Bryan
Bryan

Hi Chris,

Bokeh glyphs are "vectorized" over sequences of data. I believe this may be your problem:

ds.data['x'] = 0.6

If you are updating the data in the ColumnDataSource like that, you need to specify a sequence of points (even if there is only one). Try

  ds.data['x'] = [0.6]

Bryan

···

On Nov 8, 2014, at 8:28 PM, Christopher Nolan <cnolan@gmail.com> wrote:

Hi folks, I'm having an issue creating glyphs that I can update on the bokeh server. The provided animation examples work for me, but when I try to create my own, the glyphs disappear when I update. I've tried using the high level plotting syntax:

import bokeh.plotting as bp
import bokeh.objects as bo

bp.output_server('test')

bp.figure(title='Test')
bp.hold()
bp.wedge([0.5], [0.5],
         radius=0.04, radius_units='data',
         start_angle=[7*np.pi/8],
         end_angle=[9*np.pi/8],
         fill_color='black',
         fill_alpha=1.0)
renderers = [r for r in bp.curplot().renderers if isinstance(r, bo.Glyph)]
ds = renderers[0].data_source

ds.data['x'] = 0.6

bp.cursession().store_objects(ds)

If I omit the last line, I get a wedge in the original position. If I try to update the server-side object, the axes update to the new position of the glyph, but the wedge disappears. I've also tried building up the plot myself from a ColumnDataSource and Plot / Wedge objects, with the same result. Can anyone point out where I'm going wrong here?

Cheers,
Chris.

--
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 bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/e47e7ca1-e9cf-494e-bf16-438948bcc689%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Christopher_Nolan
Christopher_Nolan

Thanks Bryan, I’m not quite sure how I missed that one! All working.

Cheers,

Chris.

···

On Mon, Nov 10, 2014 at 2:01 AM, Bryan Van de Ven bryan@bokeh.org wrote:

Hi Chris,

Bokeh glyphs are “vectorized” over sequences of data. I believe this may be your problem:

ds.data[‘x’] = 0.6

If you are updating the data in the ColumnDataSource like that, you need to specify a sequence of points (even if there is only one). Try

    ds.data['x'] = [0.6]

Bryan

On Nov 8, 2014, at 8:28 PM, Christopher Nolan cnolan@gmail.com wrote:

Hi folks, I’m having an issue creating glyphs that I can update on the bokeh server. The provided animation examples work for me, but when I try to create my own, the glyphs disappear when I update. I’ve tried using the high level plotting syntax:

import bokeh.plotting as bp

import bokeh.objects as bo

bp.output_server(‘test’)

bp.figure(title=‘Test’)

bp.hold()

bp.wedge([0.5], [0.5],

     radius=0.04, radius_units='data',
     start_angle=[7*np.pi/8],
     end_angle=[9*np.pi/8],
     fill_color='black',
     fill_alpha=1.0)

renderers = [r for r in bp.curplot().renderers if isinstance(r, bo.Glyph)]

ds = renderers[0].data_source

ds.data[‘x’] = 0.6

bp.cursession().store_objects(ds)

If I omit the last line, I get a wedge in the original position. If I try to update the server-side object, the axes update to the new position of the glyph, but the wedge disappears. I’ve also tried building up the plot myself from a ColumnDataSource and Plot / Wedge objects, with the same result. Can anyone point out where I’m going wrong here?

Cheers,

Chris.

–

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 bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/e47e7ca1-e9cf-494e-bf16-438948bcc689%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/UkrI-ZQ6Yzo/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4907B03D-CF0A-4A2C-8982-6A464C111D96%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

⌁   Link to post
Bryan
Bryan

Great I am glad to hear that worked! We could probably add a check to make code like you originally had work by converting to a singleton list for convenience, it might be worth looking into for the future.

Bryan

···

On Nov 9, 2014, at 3:42 PM, Christopher Nolan <cnolan@gmail.com> wrote:

Thanks Bryan, I'm not quite sure how I missed that one! All working.

Cheers,
Chris.

On Mon, Nov 10, 2014 at 2:01 AM, Bryan Van de Ven <bryan@bokeh.org> wrote:
Hi Chris,

Bokeh glyphs are "vectorized" over sequences of data. I believe this may be your problem:

> ds.data['x'] = 0.6

If you are updating the data in the ColumnDataSource like that, you need to specify a sequence of points (even if there is only one). Try

        ds.data['x'] = [0.6]

Bryan

> On Nov 8, 2014, at 8:28 PM, Christopher Nolan <cnolan@gmail.com> wrote:
>
> Hi folks, I'm having an issue creating glyphs that I can update on the bokeh server. The provided animation examples work for me, but when I try to create my own, the glyphs disappear when I update. I've tried using the high level plotting syntax:
>
> import bokeh.plotting as bp
> import bokeh.objects as bo
>
> bp.output_server('test')
>
> bp.figure(title='Test')
> bp.hold()
> bp.wedge([0.5], [0.5],
> radius=0.04, radius_units='data',
> start_angle=[7*np.pi/8],
> end_angle=[9*np.pi/8],
> fill_color='black',
> fill_alpha=1.0)
> renderers = [r for r in bp.curplot().renderers if isinstance(r, bo.Glyph)]
> ds = renderers[0].data_source
>
> ds.data['x'] = 0.6
>
> bp.cursession().store_objects(ds)
>
> If I omit the last line, I get a wedge in the original position. If I try to update the server-side object, the axes update to the new position of the glyph, but the wedge disappears. I've also tried building up the plot myself from a ColumnDataSource and Plot / Wedge objects, with the same result. Can anyone point out where I'm going wrong here?
>
> Cheers,
> Chris.
>
>
> --
> 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 bokeh+unsubscribe@continuum.io.
> To post to this group, send email to bokeh@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/e47e7ca1-e9cf-494e-bf16-438948bcc689%40continuum.io\.
> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/UkrI-ZQ6Yzo/unsubscribe\.
To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4907B03D-CF0A-4A2C-8982-6A464C111D96%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
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 bokeh+unsubscribe@continuum.io.
To post to this group, send email to bokeh@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAL81BhKfZsrvKu9Dbn11SNWPHgyH7sTQk2A0FhYssMcXMKYDrA%40mail.gmail.com\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Damian_Avila
Damian_Avila

We could probably add a check to make code like you originally had work by converting to a singleton list for convenience, it might be worth looking into for the future.

Yep, at least an advice would be very helpful… we saw this kind of issues before, so a check seems reasonable and needed.

···

On Sun, Nov 9, 2014 at 8:37 PM, Bryan Van de Ven bryan@bokeh.org wrote:

Great I am glad to hear that worked! We could probably add a check to make code like you originally had work by converting to a singleton list for convenience, it might be worth looking into for the future.

Bryan

On Nov 9, 2014, at 3:42 PM, Christopher Nolan cnolan@gmail.com wrote:

Thanks Bryan, I’m not quite sure how I missed that one! All working.

Cheers,

Chris.

On Mon, Nov 10, 2014 at 2:01 AM, Bryan Van de Ven bryan@bokeh.org wrote:

Hi Chris,

Bokeh glyphs are “vectorized” over sequences of data. I believe this may be your problem:

ds.data[‘x’] = 0.6

If you are updating the data in the ColumnDataSource like that, you need to specify a sequence of points (even if there is only one). Try

    ds.data['x'] = [0.6]

Bryan

On Nov 8, 2014, at 8:28 PM, Christopher Nolan cnolan@gmail.com wrote:

Hi folks, I’m having an issue creating glyphs that I can update on the bokeh server. The provided animation examples work for me, but when I try to create my own, the glyphs disappear when I update. I’ve tried using the high level plotting syntax:

import bokeh.plotting as bp

import bokeh.objects as bo

bp.output_server(‘test’)

bp.figure(title=‘Test’)

bp.hold()

bp.wedge([0.5], [0.5],

     radius=0.04, radius_units='data',
     start_angle=[7*np.pi/8],
     end_angle=[9*np.pi/8],
     fill_color='black',
     fill_alpha=1.0)

renderers = [r for r in bp.curplot().renderers if isinstance(r, bo.Glyph)]

ds = renderers[0].data_source

ds.data[‘x’] = 0.6

bp.cursession().store_objects(ds)

If I omit the last line, I get a wedge in the original position. If I try to update the server-side object, the axes update to the new position of the glyph, but the wedge disappears. I’ve also tried building up the plot myself from a ColumnDataSource and Plot / Wedge objects, with the same result. Can anyone point out where I’m going wrong here?

Cheers,

Chris.

–

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 bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/e47e7ca1-e9cf-494e-bf16-438948bcc689%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/UkrI-ZQ6Yzo/unsubscribe.

To unsubscribe from this group and all its topics, send an email to bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4907B03D-CF0A-4A2C-8982-6A464C111D96%40continuum.io.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

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 bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAL81BhKfZsrvKu9Dbn11SNWPHgyH7sTQk2A0FhYssMcXMKYDrA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–

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 bokeh+unsubscribe@continuum.io.

To post to this group, send email to bokeh@continuum.io.

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/FDB1076E-5028-4672-A99C-3CB86A295687%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

⌁   Link to post

End of archived discussion · Replies are disabled