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 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].
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
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?
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
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].
Not really different philosophy, it's just work to do, that takes time and effort. Making different charts composable, and adding more faceting, etc. are definitely things we intend to do.
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
> 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 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\.