☰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

Question about new charts api

Community Support
JMk
JMk

The new charts API is great for quickly producing canned types of common charts, but often there are more complex use cases.

Now, these can be composed using lower level bokeh objects. However there is a generality abstraction sweetspot hit by libraries like ggplot 2 that provide primitives which facilitate both common and custom complex chart making. The direction the charts API is moving in seems much more inflexible.

Here is an example which uses ggplot 2’s general rectangle geom (as opposed to a plain bar function like in bokeh) to make a custom chart.

Are there any plans to provide high level but general primitives that can be composed like this example, or is this out of scope for bokeh?

⌁   Link to post
Tom_Denniston
Tom_Denniston

The Gadfly project in Julia is also interesting as flexible, high level and easier to use than ggplot 2.

http://gadflyjl.org/

···

On Sunday, November 22, 2015, JMk lampkld2@gmail.com wrote:

The new charts API is great for quickly producing canned types of common charts, but often there are more complex use cases.

Now, these can be composed using lower level bokeh objects. However there is a generality abstraction sweetspot hit by libraries like ggplot 2 that provide primitives which facilitate both common and custom complex chart making. The direction the charts API is moving in seems much more inflexible.

Here is an example which uses ggplot 2’s general rectangle geom (as opposed to a plain bar function like in bokeh) to make a custom chart.

Are there any plans to provide high level but general primitives that can be composed like this example, or is this out of scope for bokeh?

–

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/4d804a54-9902-4960-b346-79f44936703b%40continuum.io.

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

⌁   Link to post
Bryan
Bryan

Hi,

It's true that the bokeh.charts API is intended to be very high level and schematized. This implies a tradef-off in flexibility, for sure. When you say "lower level bokeh objects" do you mean specifically bokeh.models API? That is indeed low level. I ask because the 'middle' API, bokeh.plotting, sounds exactly like your description. It provides a collections of graphical glyph models (circles, rects, wedges, etc), any and all of whose properties can either be configured with fixed values, or vectorized across a arrays of data. As a result it is possible to create flexible visualizations like this periodic table with hover drill-down in just a small amount of code
  
  http://bokeh.pydata.org/en/latest/docs/gallery/periodic.html

Or even recreate this entirely novel example from Burtin:

  http://bokeh.pydata.org/en/latest/docs/gallery/burtin.html

Bryan

···

On Nov 22, 2015, at 10:53 AM, JMk <lampkld2@gmail.com> wrote:

The new charts API is great for quickly producing canned types of common charts, but often there are more complex use cases.

Now, these can be composed using lower level bokeh objects. However there is a generality abstraction sweetspot hit by libraries like ggplot 2 that provide primitives which facilitate both common and custom complex chart making. The direction the charts API is moving in seems much more inflexible.

Here is an example which uses ggplot 2's general rectangle geom (as opposed to a plain bar function like in bokeh) to make a custom chart.

Are there any plans to provide high level but general primitives that can be composed like this example, or is this out of scope for bokeh?

--
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/4d804a54-9902-4960-b346-79f44936703b%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
JMk
JMk

Thanks for the examples. Looks great, but they are still a bit lower level than ggplot’s geoms in that they don’t seem to have built in aggregation, faceting or statistical awareness, (like smooth, contour, quantile) etc nor do they magically interact. This is similar to charts, but more composable: https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf

Personally, I think ggplot hits the abstraction sweet spot, at least for custom but quick exploratory viz. However, I understand if bokeh is underpinned by a different philosophy.

···

On Tuesday, November 24, 2015 at 8:28:27 PM UTC-5, Bryan Van de ven wrote:

Hi,

It’s true that the bokeh.charts API is intended to be very high level and schematized. This implies a tradef-off in flexibility, for sure. When you say “lower level bokeh objects” do you mean specifically bokeh.models API? That is indeed low level. I ask because the ‘middle’ API, bokeh.plotting, sounds exactly like your description. It provides a collections of graphical glyph models (circles, rects, wedges, etc), any and all of whose properties can either be configured with fixed values, or vectorized across a arrays of data. As a result it is possible to create flexible visualizations like this periodic table with hover drill-down in just a small amount of code

    [http://bokeh.pydata.org/en/latest/docs/gallery/periodic.html](http://bokeh.pydata.org/en/latest/docs/gallery/periodic.html)

Or even recreate this entirely novel example from Burtin:

    [http://bokeh.pydata.org/en/latest/docs/gallery/burtin.html](http://bokeh.pydata.org/en/latest/docs/gallery/burtin.html)

Bryan

On Nov 22, 2015, at 10:53 AM, JMk lamp...@gmail.com wrote:

The new charts API is great for quickly producing canned types of common charts, but often there are more complex use cases.

Now, these can be composed using lower level bokeh objects. However there is a generality abstraction sweetspot hit by libraries like ggplot 2 that provide primitives which facilitate both common and custom complex chart making. The direction the charts API is moving in seems much more inflexible.

Here is an example which uses ggplot 2’s general rectangle geom (as opposed to a plain bar function like in bokeh) to make a custom chart.

Are there any plans to provide high level but general primitives that can be composed like this example, or is this out of scope for bokeh?

–
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+un...@continuum.io.

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

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4d804a54-9902-4960-b346-79f44936703b%40continuum.io.

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

⌁   Link to post
Bryan
Bryan

Not really different philosophy, it's just work to do, that takes time and effort. :slight_smile: Making different charts composable, and adding more faceting, etc. are definitely things we intend to do.

Bryan

···

On Dec 15, 2015, at 6:46 PM, JMk <lampkld2@gmail.com> wrote:

Thanks for the examples. Looks great, but they are still a bit lower level than ggplot's geoms in that they don't seem to have built in aggregation, faceting or statistical awareness, (like smooth, contour, quantile) etc nor do they magically interact. This is similar to charts, but more composable: https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf

Personally, I think ggplot hits the abstraction sweet spot, at least for custom but quick exploratory viz. However, I understand if bokeh is underpinned by a different philosophy.

On Tuesday, November 24, 2015 at 8:28:27 PM UTC-5, Bryan Van de ven wrote:
Hi,

It's true that the bokeh.charts API is intended to be very high level and schematized. This implies a tradef-off in flexibility, for sure. When you say "lower level bokeh objects" do you mean specifically bokeh.models API? That is indeed low level. I ask because the 'middle' API, bokeh.plotting, sounds exactly like your description. It provides a collections of graphical glyph models (circles, rects, wedges, etc), any and all of whose properties can either be configured with fixed values, or vectorized across a arrays of data. As a result it is possible to create flexible visualizations like this periodic table with hover drill-down in just a small amount of code
         
        http://bokeh.pydata.org/en/latest/docs/gallery/periodic.html

Or even recreate this entirely novel example from Burtin:

        http://bokeh.pydata.org/en/latest/docs/gallery/burtin.html

Bryan

> On Nov 22, 2015, at 10:53 AM, JMk <lamp...@gmail.com> wrote:
>
> The new charts API is great for quickly producing canned types of common charts, but often there are more complex use cases.
>
> Now, these can be composed using lower level bokeh objects. However there is a generality abstraction sweetspot hit by libraries like ggplot 2 that provide primitives which facilitate both common and custom complex chart making. The direction the charts API is moving in seems much more inflexible.
>
> Here is an example which uses ggplot 2's general rectangle geom (as opposed to a plain bar function like in bokeh) to make a custom chart.
>
> Are there any plans to provide high level but general primitives that can be composed like this example, or is this out of scope for bokeh?
>
> --
> 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+un...@continuum.io.
> To post to this group, send email to bo...@continuum.io.
> To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/4d804a54-9902-4960-b346-79f44936703b%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/acba1aae-f667-49bb-a250-87fd0f47e4f9%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