Question about new charts api

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?

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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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.

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 <[email protected]> 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 [email protected].
To post to this group, send email to [email protected].
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.

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 [email protected] 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 [email protected].

To post to this group, send email to [email protected].

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.

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 <[email protected]> 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 <[email protected]> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
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.