Feature request: Suburst Diagram

Hello everyone,

Im new here, and a student, relatively new to open source and also to the visualization. So I apologise if Im making a stupid post, or possibly with wrong tag.
I`m trying to make a dashboard using Bokeh and Holoviews which consists of an interactive Sunburst diagram and an interactive Sankey Diagram.
My question is that is it possible to add Sunburst diagram feature to Bokeh, I could not find it even after using google extensively. Maybe my google skills are not so good if it exists.

I don’t want to use Plotly and Dash as it has a steep learning curve, and Panel and Holoviews with Bokeh seem to be very good, easy to understand but this Sunburst diagram feature is missing.
Below I have attached the sunburst diagram I’m talking about. It consists of 8 main categories, each with 4 sub-categories. Each sub-category has a 5 levels to select. It should be possible to to expand into any category or sub-category. It is a feature request and I again apologize for any inconvenience, if this is the wrong place, please guide me.
Thank you very much.

Kind Regards,
Gibrail Hassan

After expansion, the Sunburst Diagram would look like this.


You can certainly create plots like that with bokeh. Please see the annular wedge glyph in the documentation Annular Wedge.

With compatible choices for the locations (x,y), inner-radii, outer-radii, start-angles, and stop-angles for multiple wedges such a plot can be created with the existing bokeh engine. Presumably, the interactions to select a sub-region and generate a new sunburst or modify the existing one can be done with some work via callbacks.

Here’s a screen-capture of something that I implemented a while back for an interactive radial equalizer. The use-case is quite different, but the general visualization is qualitatively similar.

1 Like

@GibrailHassan Thanks for the post. As @_jm mentions you certainly draw things like this in Bokeh today, using the base glyphs. The question is where to add something that operates at a higher level, that automatically handles interactions or provides a simpler API to specify. And I think the answer is probably not in Bokeh proper. At this point, Bokeh is really a foundational tool that focuses on basic vectorized glyph drawing, and JS<–>Python eventing. I think things like this are better left to higher level tools built on top of Bokeh, e.g. Holoviews or Panel.

cc Bokeh core [email protected]_Rudiger who is also a Holoviz core dev for thoughts.

1 Like