Is it possible to create parallel axes?

Hi All,
I’d like to make my own parallel coordinate diagram in Bokeh (see Plotly’s version at https://plot.ly/python/parallel-coordinates-plot/). This is largely straight-forward using MultiLines and a categorical x-axis. The part I can’t figure out how to do in Bokeh is the creation of multiple y-axes inside the plot in order to accommodate variables with different scales (See how Sepal Width, Sepal Length, Petal Width, and Petal Length all have different y-axis scales in the Plotly example).

I know Bokeh supports multiple axes on each edge of a plot (http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html#twin-axes), but is there any way to place these axes inside the plot area? If not, does anyone have any other suggestions of how I could accomplish something similar to the Plotly example?

Thanks a lot,

-Jon

1 Like

HI,

I won't say it's impossible, but for now you'd have to do quite a bit "by hand". Basically you'd need to put everything in a common coordinate system and draw some sort of axis yourself. There are some features coming that should make things better for this use case, but they are are few releases off.

Thanks,

Bryan

···

On May 18, 2017, at 07:00, Jon Mease <[email protected]> wrote:

Hi All,
     I'd like to make my own parallel coordinate diagram in Bokeh (see Plotly's version at https://plot.ly/python/parallel-coordinates-plot/\). This is largely straight-forward using MultiLines and a categorical x-axis. The part I can't figure out how to do in Bokeh is the creation of multiple y-axes inside the plot in order to accommodate variables with different scales (See how Sepal Width, Sepal Length, Petal Width, and Petal Length all have different y-axis scales in the Plotly example).

I know Bokeh supports multiple axes on each edge of a plot (http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html#twin-axes\), but is there any way to place these axes inside the plot area? If not, does anyone have any other suggestions of how I could accomplish something similar to the Plotly example?

Thanks a lot,
-Jon

--
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/67d2bc6a-2925-4cee-9104-f51f373e1fa0%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

Thanks, Brian.
I appreciate the quick reply!

Hi,

Is there any progress on parallel coordinates in Bokeh?

Thanks,
Girish

···

On Thursday, 18 May 2017 19:21:27 UTC+5:30, Bryan Van de ven wrote:

HI,

I won’t say it’s impossible, but for now you’d have to do quite a bit “by hand”. Basically you’d need to put everything in a common coordinate system and draw some sort of axis yourself. There are some features coming that should make things better for this use case, but they are are few releases off.

Thanks,

Bryan

On May 18, 2017, at 07:00, Jon Mease [email protected] wrote:

Hi All,

 I'd like to make my own parallel coordinate diagram in Bokeh (see Plotly's version at [https://plot.ly/python/parallel-coordinates-plot/](https://plot.ly/python/parallel-coordinates-plot/)).  This is largely straight-forward using MultiLines and a categorical x-axis.  The part I can't figure out how to do in Bokeh is the creation of multiple y-axes inside the plot in order to accommodate variables with different scales (See how Sepal Width, Sepal Length, Petal Width, and Petal Length all have different y-axis scales in the Plotly example).

I know Bokeh supports multiple axes on each edge of a plot (http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html#twin-axes), but is there any way to place these axes inside the plot area? If not, does anyone have any other suggestions of how I could accomplish something similar to the Plotly example?

Thanks a lot,

-Jon


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/67d2bc6a-2925-4cee-9104-f51f373e1fa0%40continuum.io.

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

Hi,

No, not really. There has not been a huge demand expressed, and as is typical for OSS, there is more work than people to do it. I'd be happy to help mentor any new contributor who wanted to work on this, though.

Thanks,

Bryan

···

On Mar 28, 2018, at 01:25, [email protected] wrote:

Hi,

Is there any progress on parallel coordinates in Bokeh?

Thanks,
Girish

On Thursday, 18 May 2017 19:21:27 UTC+5:30, Bryan Van de ven wrote:
HI,

I won't say it's impossible, but for now you'd have to do quite a bit "by hand". Basically you'd need to put everything in a common coordinate system and draw some sort of axis yourself. There are some features coming that should make things better for this use case, but they are are few releases off.

Thanks,

Bryan

> On May 18, 2017, at 07:00, Jon Mease <[email protected]> wrote:
>
> Hi All,
> I'd like to make my own parallel coordinate diagram in Bokeh (see Plotly's version at https://plot.ly/python/parallel-coordinates-plot/\). This is largely straight-forward using MultiLines and a categorical x-axis. The part I can't figure out how to do in Bokeh is the creation of multiple y-axes inside the plot in order to accommodate variables with different scales (See how Sepal Width, Sepal Length, Petal Width, and Petal Length all have different y-axis scales in the Plotly example).
>
> I know Bokeh supports multiple axes on each edge of a plot (http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html#twin-axes\), but is there any way to place these axes inside the plot area? If not, does anyone have any other suggestions of how I could accomplish something similar to the Plotly example?
>
> Thanks a lot,
> -Jon
>
> --
> 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/67d2bc6a-2925-4cee-9104-f51f373e1fa0%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/132f71a2-8535-486e-a3f6-30e2c5854b0e%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

Hi Bryan,

I want to contribute to parallel plot coordinates, But I have never done such thing before.

Can you guide me on this .

Thanks,

Ved Prakash

···

On Thursday, March 29, 2018 at 2:31:19 AM UTC+5:30, Bryan Van de ven wrote:

Hi,

No, not really. There has not been a huge demand expressed, and as is typical for OSS, there is more work than people to do it. I’d be happy to help mentor any new contributor who wanted to work on this, though.

Thanks,

Bryan

On Mar 28, 2018, at 01:25, [email protected] wrote:

Hi,

Is there any progress on parallel coordinates in Bokeh?

Thanks,

Girish

On Thursday, 18 May 2017 19:21:27 UTC+5:30, Bryan Van de ven wrote:

HI,

I won’t say it’s impossible, but for now you’d have to do quite a bit “by hand”. Basically you’d need to put everything in a common coordinate system and draw some sort of axis yourself. There are some features coming that should make things better for this use case, but they are are few releases off.

Thanks,

Bryan

On May 18, 2017, at 07:00, Jon Mease [email protected] wrote:

Hi All,
I’d like to make my own parallel coordinate diagram in Bokeh (see Plotly’s version at https://plot.ly/python/parallel-coordinates-plot/). This is largely straight-forward using MultiLines and a categorical x-axis. The part I can’t figure out how to do in Bokeh is the creation of multiple y-axes inside the plot in order to accommodate variables with different scales (See how Sepal Width, Sepal Length, Petal Width, and Petal Length all have different y-axis scales in the Plotly example).

I know Bokeh supports multiple axes on each edge of a plot (http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html#twin-axes), but is there any way to place these axes inside the plot area? If not, does anyone have any other suggestions of how I could accomplish something similar to the Plotly example?

Thanks a lot,
-Jon


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/67d2bc6a-2925-4cee-9104-f51f373e1fa0%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/132f71a2-8535-486e-a3f6-30e2c5854b0e%40continuum.io.

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

Hi,

Although it currently requires more effort than I would like, there is a complete example of a parallel plot in this PR:

  Create custom example to plot parallel plot by xavArtley · Pull Request #8578 · bokeh/bokeh · GitHub

Thanks,

Bryan

···

On Jan 24, 2019, at 05:07, [email protected] wrote:

Hi Bryan,

I want to contribute to parallel plot coordinates, But I have never done such thing before.
Can you guide me on this .

Thanks,
Ved Prakash

On Thursday, March 29, 2018 at 2:31:19 AM UTC+5:30, Bryan Van de ven wrote:
Hi,

No, not really. There has not been a huge demand expressed, and as is typical for OSS, there is more work than people to do it. I'd be happy to help mentor any new contributor who wanted to work on this, though.

Thanks,

Bryan

> On Mar 28, 2018, at 01:25, jos...@gmail.com wrote:
>
> Hi,
>
> Is there any progress on parallel coordinates in Bokeh?
>
> Thanks,
> Girish
>
> On Thursday, 18 May 2017 19:21:27 UTC+5:30, Bryan Van de ven wrote:
> HI,
>
> I won't say it's impossible, but for now you'd have to do quite a bit "by hand". Basically you'd need to put everything in a common coordinate system and draw some sort of axis yourself. There are some features coming that should make things better for this use case, but they are are few releases off.
>
> Thanks,
>
> Bryan
>
>
> > On May 18, 2017, at 07:00, Jon Mease <[email protected]> wrote:
> >
> > Hi All,
> > I'd like to make my own parallel coordinate diagram in Bokeh (see Plotly's version at https://plot.ly/python/parallel-coordinates-plot/\). This is largely straight-forward using MultiLines and a categorical x-axis. The part I can't figure out how to do in Bokeh is the creation of multiple y-axes inside the plot in order to accommodate variables with different scales (See how Sepal Width, Sepal Length, Petal Width, and Petal Length all have different y-axis scales in the Plotly example).
> >
> > I know Bokeh supports multiple axes on each edge of a plot (http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html#twin-axes\), but is there any way to place these axes inside the plot area? If not, does anyone have any other suggestions of how I could accomplish something similar to the Plotly example?
> >
> > Thanks a lot,
> > -Jon
> >
> > --
> > 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/67d2bc6a-2925-4cee-9104-f51f373e1fa0%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+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/132f71a2-8535-486e-a3f6-30e2c5854b0e%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/a35ad08d-67c4-411c-ad7d-2237ece5bc01%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

What is the correct way to run the parallel_plot custom example in the repo? I’m having some issues. Is it the typical bokeh serve app.py or do I need to build it first?

Hi @crashMOGWAI that example is a standalone example, not a Bokeh server app. You should just be able to run

python parallel_plot.py

which just worked fine for me. You will want to make sure the version of the repo yo have checked out corresponds to whatever version of Bokeh you actually have installed. Otherwise, please be more specific about the issues you are seeing.

First clue is an import error for SelectionMode. The export declaration was missing in the enums unpack (./bokeh/server/static/js/types/core/enums.d.ts). The issue persists with a fresh conda env (py3.8 bokeh2.0.2) built a few different ways. I can insert the declaration and bypass but I just roll to the next error. I’m kind of scratching my head right now. Can you confirm SelectionMode is in there for a clean build?

parallel_selection_tool.ts:9:9 - error TS2305: Module '"../anaconda3/envs/test_py3p8/lib/python3.8/site-packages/bokeh/server/static/js/types/core/enums"' has no exported member 'SelectionMode'.

9 import {SelectionMode} from "core/enums"

@crashMOGWAI There are changes in master more recent than any release. As I mentioned before you will need to check out the repository to the release tag appropriate to the actual version of Bokeh you have installed. E.g.

git checkout 2.0.2

This is often necessary for custom extension examples where newer versions of the examples in master may not be compatible with older released versions of the library (we strive for backward compatibility at the Python level, but absolutely make no statements about forward compatibility especially at the JS level).

Wow, that example looks amazing! Can it be added to the gallery?

1 Like