☰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

Change axis label on button click

Community Support
Max
Max

Hello.
Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line

self.plot.x_axis_label = “Hello World!”
where

self.plot = line(‘x0’, ‘y0’, source=self.source,
plot_width=600, plot_height=600,
x_axis_label=‘blub’
)
does not work.

Do I do something wrong or is this just not supposed to work?

Best,

Max

⌁   Link to post
Bryan
Bryan

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(...) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

···

On Jan 12, 2015, at 4:42 AM, Max <max.groenke@gmail.com> wrote:

Hello.
Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line
self.plot.x_axis_label = "Hello World!"
where
self.plot = line('x0', 'y0', source=self.source,
                        plot_width=600, plot_height=600,
                        x_axis_label='blub'
                    )

does not work.

Do I do something wrong or is this just not supposed to work?

Best,
Max

--
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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Max
Max

Hi!
Thanks for the prompt response. I am using an "app". So for example if
I add the line "self.plot.x_axis_label = "hallo"" to the function
"input_change" of the "sliders_app" example, it does not do anything.

Thanks again for your help,
Max

···

On 12 January 2015 at 15:41, Bryan Van de Ven <bryan@bokeh.org> wrote:

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(...) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

On Jan 12, 2015, at 4:42 AM, Max <max.groenke@gmail.com> wrote:

Hello.
Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line
self.plot.x_axis_label = "Hello World!"
where
self.plot = line('x0', 'y0', source=self.source,
                        plot_width=600, plot_height=600,
                        x_axis_label='blub'
                    )

does not work.

Do I do something wrong or is this just not supposed to work?

Best,
Max

--
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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

--
You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe\.
To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Max
Max

Another issue, that might be related:
Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using

self.slider.end = 100
does not throw an error – but it also doesn’t seem to work…

Thanks for your help,

Max

···

On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:

Hi!

Thanks for the prompt response. I am using an “app”. So for example if

I add the line “self.plot.x_axis_label = “hallo”” to the function

“input_change” of the “sliders_app” example, it does not do anything.

Thanks again for your help,

Max

On 12 January 2015 at 15:41, Bryan Van de Ven wrote:

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(…) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

On Jan 12, 2015, at 4:42 AM, Max wrote:

Hello.

Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line

self.plot.x_axis_label = “Hello World!”

where

self.plot = line(‘x0’, ‘y0’, source=self.source,

                    plot_width=600, plot_height=600,
                    x_axis_label='blub'
                )

does not work.

Do I do something wrong or is this just not supposed to work?

Best,

Max

–

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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io.

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

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe.

To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%40continuum.io.

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

⌁   Link to post
Max
Max

Just an update: Now – after upgrading bokeh (to 0.7.1) – the example does not work anymore but raises an error
AttributeError: unexpected attribute ‘x_axis_label’ to Plot, possible attributes are above, background_fill, below, border_fill, disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right, min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset, outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align, title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events, toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range

``

A reminder what I was doing:

I added the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example.

Thanks,

Max

···

On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:

Another issue, that might be related:
Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using

self.slider.end = 100
does not throw an error – but it also doesn’t seem to work…

Thanks for your help,

Max

On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:

Hi!

Thanks for the prompt response. I am using an “app”. So for example if

I add the line “self.plot.x_axis_label = “hallo”” to the function

“input_change” of the “sliders_app” example, it does not do anything.

Thanks again for your help,

Max

On 12 January 2015 at 15:41, Bryan Van de Ven wrote:

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(…) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

On Jan 12, 2015, at 4:42 AM, Max wrote:

Hello.

Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line

self.plot.x_axis_label = “Hello World!”

where

self.plot = line(‘x0’, ‘y0’, source=self.source,

                    plot_width=600, plot_height=600,
                    x_axis_label='blub'
                )

does not work.

Do I do something wrong or is this just not supposed to work?

Best,

Max

–

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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io.

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

–

You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe.

To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%40continuum.io.

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

⌁   Link to post
Bryan
Bryan

That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:

  self.plot.xaxis.axis_label = "hallo"

Thanks,

Bryan

···

On Feb 3, 2015, at 3:08 AM, Max <max.groenke@gmail.com> wrote:

Just an update: Now -- after upgrading bokeh (to 0.7.1) -- the example does not work anymore but raises an error
AttributeError: unexpected attribute 'x_axis_label' to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range

A reminder what I was doing:
I added the line "self.plot.x_axis_label = "hallo"" to the function
"input_change" of the "sliders_app" example.

Thanks,
Max

On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:
Another issue, that might be related:
Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using
self.slider.end = 100
does not throw an error -- but it also doesn't seem to work...

Thanks for your help,
Max

On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:
Hi!
Thanks for the prompt response. I am using an "app". So for example if
I add the line "self.plot.x_axis_label = "hallo"" to the function
"input_change" of the "sliders_app" example, it does not do anything.

Thanks again for your help,
Max

On 12 January 2015 at 15:41, Bryan Van de Ven wrote:
> Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(...) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,
>
> Thanks,
>
> Bryan
>
>
>> On Jan 12, 2015, at 4:42 AM, Max wrote:
>>
>> Hello.
>> Is it possible to change an axis label on the click of a button?
>>
>> My current approach, i.e., adding the line
>> self.plot.x_axis_label = "Hello World!"
>> where
>> self.plot = line('x0', 'y0', source=self.source,
>> plot_width=600, plot_height=600,
>> x_axis_label='blub'
>> )
>>
>> does not work.
>>
>> Do I do something wrong or is this just not supposed to work?
>>
>> Best,
>> Max
>>
>> --
>> 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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io\.
>> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
>
> --
> You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe\.
> To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Max
Max

No success, unfortunately…

File “sliders_app.py”, line 132, in input_change

self.plot.xaxis.axis_label = “hallo”

AttributeError: ‘Plot’ object has no attribute ‘xaxis’

``

···

On Tuesday, February 3, 2015 at 2:47:54 PM UTC+1, Bryan Van de ven wrote:

That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:

    self.plot.xaxis.axis_label = "hallo"

Thanks,

Bryan

On Feb 3, 2015, at 3:08 AM, Max max.g...@gmail.com wrote:

Just an update: Now – after upgrading bokeh (to 0.7.1) – the example does not work anymore but raises an error

AttributeError: unexpected attribute ‘x_axis_label’ to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range

A reminder what I was doing:

I added the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example.

Thanks,

Max

On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:

Another issue, that might be related:

Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using

self.slider.end = 100

does not throw an error – but it also doesn’t seem to work…

Thanks for your help,

Max

On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:

Hi!
Thanks for the prompt response. I am using an “app”. So for example if
I add the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example, it does not do anything.

Thanks again for your help,
Max

On 12 January 2015 at 15:41, Bryan Van de Ven wrote:

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(…) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

On Jan 12, 2015, at 4:42 AM, Max wrote:

Hello.
Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line
self.plot.x_axis_label = “Hello World!”
where
self.plot = line(‘x0’, ‘y0’, source=self.source,
plot_width=600, plot_height=600,
x_axis_label=‘blub’
)

does not work.

Do I do something wrong or is this just not supposed to work?

Best,
Max

–
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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–
You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe.
To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%40continuum.io.

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

⌁   Link to post
Bryan
Bryan

My apologies, I assumed you were using the bokeh.plotting interface. You must be assembling plots by hand from the low-level models interface? In that case the easiest thing to do (if you can) is simply to pass the label to the Axis when you create it:

  LinearAxis(axis_label="my label")

If you need to be able to change it some time later, you could keep a reference to the Axis object you created, and set "axis_label" attribute on it directly. You can also make use of the "select" method to query a Plot for sub-objects:

In [3]: from bokeh.models import *

In [4]: p = Plot()

In [5]: p.add_layout(LinearAxis(name="foo"))

In [6]: p.select(dict(name="foo"))
Out[6]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

In [7]: p.select(dict(type=LinearAxis))
Out[7]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

Once you have ahold of an Axis object, use ax.axis_label="my label" to set the axis label.

Bryan

···

On Feb 3, 2015, at 7:54 AM, Max <max.groenke@gmail.com> wrote:

No success, unfortunately...

  File "sliders_app.py", line 132, in input_change
    self.plot.xaxis.axis_label = "hallo"
AttributeError: 'Plot' object has no attribute 'xaxis'

On Tuesday, February 3, 2015 at 2:47:54 PM UTC+1, Bryan Van de ven wrote:
That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:

        self.plot.xaxis.axis_label = "hallo"

Thanks,

Bryan

> On Feb 3, 2015, at 3:08 AM, Max <max.g...@gmail.com> wrote:
>
> Just an update: Now -- after upgrading bokeh (to 0.7.1) -- the example does not work anymore but raises an error
> AttributeError: unexpected attribute 'x_axis_label' to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range
>
> A reminder what I was doing:
> I added the line "self.plot.x_axis_label = "hallo"" to the function
> "input_change" of the "sliders_app" example.
>
> Thanks,
> Max
>
> On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:
> Another issue, that might be related:
> Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using
> self.slider.end = 100
> does not throw an error -- but it also doesn't seem to work...
>
> Thanks for your help,
> Max
>
> On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:
> Hi!
> Thanks for the prompt response. I am using an "app". So for example if
> I add the line "self.plot.x_axis_label = "hallo"" to the function
> "input_change" of the "sliders_app" example, it does not do anything.
>
> Thanks again for your help,
> Max
>
>
> On 12 January 2015 at 15:41, Bryan Van de Ven wrote:
> > Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(...) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,
> >
> > Thanks,
> >
> > Bryan
> >
> >
> >> On Jan 12, 2015, at 4:42 AM, Max wrote:
> >>
> >> Hello.
> >> Is it possible to change an axis label on the click of a button?
> >>
> >> My current approach, i.e., adding the line
> >> self.plot.x_axis_label = "Hello World!"
> >> where
> >> self.plot = line('x0', 'y0', source=self.source,
> >> plot_width=600, plot_height=600,
> >> x_axis_label='blub'
> >> )
> >>
> >> does not work.
> >>
> >> Do I do something wrong or is this just not supposed to work?
> >>
> >> Best,
> >> Max
> >>
> >> --
> >> 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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io\.
> >> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> >
> > --
> > You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
> > To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe\.
> > To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%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/75e83970-9ace-4ac5-8bcf-d0c1ac63ff95%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Max
Max

Hi Bryan!
Thanks for your help & your patience.

All I am doing is altering (a little bit) your “sliders_app” example. Is this “low-level”?

The solution you posted seems to result in an empty plot (probably because there is already some axis…?)

What works is something like:

ax = obj.plot.select(dict(type=LinearAxis))

ax[0].axis_label=“my label”

Thanks a lot for your help!

Best,

Max

···

On Tuesday, February 3, 2015 at 3:03:36 PM UTC+1, Bryan Van de ven wrote:

My apologies, I assumed you were using the bokeh.plotting interface. You must be assembling plots by hand from the low-level models interface? In that case the easiest thing to do (if you can) is simply to pass the label to the Axis when you create it:

    LinearAxis(axis_label="my label")

If you need to be able to change it some time later, you could keep a reference to the Axis object you created, and set “axis_label” attribute on it directly. You can also make use of the “select” method to query a Plot for sub-objects:

In [3]: from bokeh.models import *

In [4]: p = Plot()

In [5]: p.add_layout(LinearAxis(name=“foo”))

In [6]: p.select(dict(name=“foo”))

Out[6]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

In [7]: p.select(dict(type=LinearAxis))

Out[7]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

Once you have ahold of an Axis object, use ax.axis_label=“my label” to set the axis label.

Bryan

On Feb 3, 2015, at 7:54 AM, Max max.g...@gmail.com wrote:

No success, unfortunately…

File “sliders_app.py”, line 132, in input_change

self.plot.xaxis.axis_label = "hallo"

AttributeError: ‘Plot’ object has no attribute ‘xaxis’

On Tuesday, February 3, 2015 at 2:47:54 PM UTC+1, Bryan Van de ven wrote:

That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:

    self.plot.xaxis.axis_label = "hallo"

Thanks,

Bryan

On Feb 3, 2015, at 3:08 AM, Max max.g...@gmail.com wrote:

Just an update: Now – after upgrading bokeh (to 0.7.1) – the example does not work anymore but raises an error
AttributeError: unexpected attribute ‘x_axis_label’ to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range

A reminder what I was doing:
I added the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example.

Thanks,
Max

On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:
Another issue, that might be related:
Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using
self.slider.end = 100
does not throw an error – but it also doesn’t seem to work…

Thanks for your help,
Max

On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:
Hi!
Thanks for the prompt response. I am using an “app”. So for example if
I add the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example, it does not do anything.

Thanks again for your help,
Max

On 12 January 2015 at 15:41, Bryan Van de Ven wrote:

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(…) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

On Jan 12, 2015, at 4:42 AM, Max wrote:

Hello.
Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line
self.plot.x_axis_label = “Hello World!”
where
self.plot = line(‘x0’, ‘y0’, source=self.source,
plot_width=600, plot_height=600,
x_axis_label=‘blub’
)

does not work.

Do I do something wrong or is this just not supposed to work?

Best,
Max

–
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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–
You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe.
To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%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/75e83970-9ace-4ac5-8bcf-d0c1ac63ff95%40continuum.io.

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

⌁   Link to post
Bryan
Bryan

Hi Max,

It's my pleasure. It's hard for me to say without seeing more code, but here is a diff with the current sliders_app.py that changes the axis label on every update that works for me that you can use as a reference:

bryan@laptop (git:master) ~/work/bokeh/examples/app/sliders_applet $ git diff
diff --git a/examples/app/sliders_applet/sliders_app.py b/examples/app/sliders_applet/sliders_app.py
index 26b7445..5a11f11 100644
--- a/examples/app/sliders_applet/sliders_app.py
+++ b/examples/app/sliders_applet/sliders_app.py
@@ -11,7 +11,7 @@ logging.basicConfig(level=logging.DEBUG)
import numpy as np

from bokeh.plotting import figure
-from bokeh.models import Plot, ColumnDataSource
+from bokeh.models import Plot, ColumnDataSource, LinearAxis
from bokeh.properties import Instance
from bokeh.server.app import bokeh_app
from bokeh.server.utils.plugins import object_page
@@ -153,6 +153,8 @@ class SlidersApp(HBox):
             self.amplitude.value
         )

+ ax = self.plot.select(dict(type=LinearAxis))
+ ax[0].axis_label="PARAMS: a: %s b: %s w: %s k: %s" % (a, b, w, k)
         self.source.data = dict(x=x, y=y)

To answer the other question, yes this is the "low level" interface. To give a short description:

* bokeh.models - low level object interface mirrors BokehJS, must assemble everything "by hand"

* bokeh.plotting - matlab/matplotlib level interface, helps create simple plots around glyphs

* bokeh.charts - high level schematic interface for statistical plotting

Thanks,

Bryan

···

On Feb 3, 2015, at 8:57 AM, Max <max.groenke@gmail.com> wrote:

Hi Bryan!
Thanks for your help & your patience.

All I am doing is altering (a little bit) your "sliders_app" example. Is this "low-level"?
The solution you posted seems to result in an empty plot (probably because there is already some axis...?)

What works is something like:
        ax = obj.plot.select(dict(type=LinearAxis))
        ax[0].axis_label="my label"

Thanks a lot for your help!

Best,
Max

On Tuesday, February 3, 2015 at 3:03:36 PM UTC+1, Bryan Van de ven wrote:
My apologies, I assumed you were using the bokeh.plotting interface. You must be assembling plots by hand from the low-level models interface? In that case the easiest thing to do (if you can) is simply to pass the label to the Axis when you create it:

        LinearAxis(axis_label="my label")

If you need to be able to change it some time later, you could keep a reference to the Axis object you created, and set "axis_label" attribute on it directly. You can also make use of the "select" method to query a Plot for sub-objects:

In [3]: from bokeh.models import *

In [4]: p = Plot()

In [5]: p.add_layout(LinearAxis(name="foo"))

In [6]: p.select(dict(name="foo"))
Out[6]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

In [7]: p.select(dict(type=LinearAxis))
Out[7]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

Once you have ahold of an Axis object, use ax.axis_label="my label" to set the axis label.

Bryan

> On Feb 3, 2015, at 7:54 AM, Max <max.g...@gmail.com> wrote:
>
> No success, unfortunately...
>
> File "sliders_app.py", line 132, in input_change
> self.plot.xaxis.axis_label = "hallo"
> AttributeError: 'Plot' object has no attribute 'xaxis'
>
>
> On Tuesday, February 3, 2015 at 2:47:54 PM UTC+1, Bryan Van de ven wrote:
> That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:
>
> self.plot.xaxis.axis_label = "hallo"
>
>
> Thanks,
>
> Bryan
>
> > On Feb 3, 2015, at 3:08 AM, Max <max.g...@gmail.com> wrote:
> >
> > Just an update: Now -- after upgrading bokeh (to 0.7.1) -- the example does not work anymore but raises an error
> > AttributeError: unexpected attribute 'x_axis_label' to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range
> >
> > A reminder what I was doing:
> > I added the line "self.plot.x_axis_label = "hallo"" to the function
> > "input_change" of the "sliders_app" example.
> >
> > Thanks,
> > Max
> >
> > On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:
> > Another issue, that might be related:
> > Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using
> > self.slider.end = 100
> > does not throw an error -- but it also doesn't seem to work...
> >
> > Thanks for your help,
> > Max
> >
> > On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:
> > Hi!
> > Thanks for the prompt response. I am using an "app". So for example if
> > I add the line "self.plot.x_axis_label = "hallo"" to the function
> > "input_change" of the "sliders_app" example, it does not do anything.
> >
> > Thanks again for your help,
> > Max
> >
> >
> > On 12 January 2015 at 15:41, Bryan Van de Ven wrote:
> > > Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(...) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,
> > >
> > > Thanks,
> > >
> > > Bryan
> > >
> > >
> > >> On Jan 12, 2015, at 4:42 AM, Max wrote:
> > >>
> > >> Hello.
> > >> Is it possible to change an axis label on the click of a button?
> > >>
> > >> My current approach, i.e., adding the line
> > >> self.plot.x_axis_label = "Hello World!"
> > >> where
> > >> self.plot = line('x0', 'y0', source=self.source,
> > >> plot_width=600, plot_height=600,
> > >> x_axis_label='blub'
> > >> )
> > >>
> > >> does not work.
> > >>
> > >> Do I do something wrong or is this just not supposed to work?
> > >>
> > >> Best,
> > >> Max
> > >>
> > >> --
> > >> 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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io\.
> > >> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > >
> > > --
> > > You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
> > > To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe\.
> > > To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%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/75e83970-9ace-4ac5-8bcf-d0c1ac63ff95%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/2c2c12e4-652c-4008-9ff8-049a23cb0dce%40continuum.io\.
For more options, visit https://groups.google.com/a/continuum.io/d/optout\.

⌁   Link to post
Max
Max

Thanks!
Thats what I have in there now & it works fine on my machine. However, if I change some initial conditions & the computer, the x & y axis get mixed up (I guess the “ax” list is ordered in the reversed way).

Is there a way to find out easily what is the x and what the y axis?

Thanks again,

Max

···

On Tuesday, February 3, 2015 at 4:08:00 PM UTC+1, Bryan Van de ven wrote:

Hi Max,

It’s my pleasure. It’s hard for me to say without seeing more code, but here is a diff with the current sliders_app.py that changes the axis label on every update that works for me that you can use as a reference:

bryan@laptop (git:master) ~/work/bokeh/examples/app/sliders_applet $ git diff

diff --git a/examples/app/sliders_applet/sliders_app.py b/examples/app/sliders_applet/sliders_app.py

index 26b7445…5a11f11 100644

— a/examples/app/sliders_applet/sliders_app.py

+++ b/examples/app/sliders_applet/sliders_app.py

@@ -11,7 +11,7 @@ logging.basicConfig(level=logging.DEBUG)

import numpy as np

from bokeh.plotting import figure

-from bokeh.models import Plot, ColumnDataSource

+from bokeh.models import Plot, ColumnDataSource, LinearAxis

from bokeh.properties import Instance

from bokeh.server.app import bokeh_app

from bokeh.server.utils.plugins import object_page

@@ -153,6 +153,8 @@ class SlidersApp(HBox):

         self.amplitude.value

     )
  •    ax =  self.plot.select(dict(type=LinearAxis))
    
  •    ax[0].axis_label="PARAMS: a: %s b: %s w: %s k: %s" % (a, b, w, k)
    
       self.source.data = dict(x=x, y=y)
    

To answer the other question, yes this is the “low level” interface. To give a short description:

  • bokeh.models - low level object interface mirrors BokehJS, must assemble everything “by hand”

  • bokeh.plotting - matlab/matplotlib level interface, helps create simple plots around glyphs

  • bokeh.charts - high level schematic interface for statistical plotting

Thanks,

Bryan

On Feb 3, 2015, at 8:57 AM, Max max.g...@gmail.com wrote:

Hi Bryan!

Thanks for your help & your patience.

All I am doing is altering (a little bit) your “sliders_app” example. Is this “low-level”?

The solution you posted seems to result in an empty plot (probably because there is already some axis…?)

What works is something like:

    ax =  obj.plot.select(dict(type=LinearAxis))
    ax[0].axis_label="my label"

Thanks a lot for your help!

Best,

Max

On Tuesday, February 3, 2015 at 3:03:36 PM UTC+1, Bryan Van de ven wrote:

My apologies, I assumed you were using the bokeh.plotting interface. You must be assembling plots by hand from the low-level models interface? In that case the easiest thing to do (if you can) is simply to pass the label to the Axis when you create it:

    LinearAxis(axis_label="my label")

If you need to be able to change it some time later, you could keep a reference to the Axis object you created, and set “axis_label” attribute on it directly. You can also make use of the “select” method to query a Plot for sub-objects:

In [3]: from bokeh.models import *

In [4]: p = Plot()

In [5]: p.add_layout(LinearAxis(name=“foo”))

In [6]: p.select(dict(name=“foo”))
Out[6]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

In [7]: p.select(dict(type=LinearAxis))
Out[7]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

Once you have ahold of an Axis object, use ax.axis_label=“my label” to set the axis label.

Bryan

On Feb 3, 2015, at 7:54 AM, Max max.g...@gmail.com wrote:

No success, unfortunately…

File “sliders_app.py”, line 132, in input_change
self.plot.xaxis.axis_label = “hallo”
AttributeError: ‘Plot’ object has no attribute ‘xaxis’

On Tuesday, February 3, 2015 at 2:47:54 PM UTC+1, Bryan Van de ven wrote:
That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:

    self.plot.xaxis.axis_label = "hallo"

Thanks,

Bryan

On Feb 3, 2015, at 3:08 AM, Max max.g...@gmail.com wrote:

Just an update: Now – after upgrading bokeh (to 0.7.1) – the example does not work anymore but raises an error
AttributeError: unexpected attribute ‘x_axis_label’ to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range

A reminder what I was doing:
I added the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example.

Thanks,
Max

On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:
Another issue, that might be related:
Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using
self.slider.end = 100
does not throw an error – but it also doesn’t seem to work…

Thanks for your help,
Max

On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:
Hi!
Thanks for the prompt response. I am using an “app”. So for example if
I add the line “self.plot.x_axis_label = “hallo”” to the function
“input_change” of the “sliders_app” example, it does not do anything.

Thanks again for your help,
Max

On 12 January 2015 at 15:41, Bryan Van de Ven wrote:

Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(…) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,

Thanks,

Bryan

On Jan 12, 2015, at 4:42 AM, Max wrote:

Hello.
Is it possible to change an axis label on the click of a button?

My current approach, i.e., adding the line
self.plot.x_axis_label = “Hello World!”
where
self.plot = line(‘x0’, ‘y0’, source=self.source,
plot_width=600, plot_height=600,
x_axis_label=‘blub’
)

does not work.

Do I do something wrong or is this just not supposed to work?

Best,
Max

–
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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

–
You received this message because you are subscribed to a topic in the Google Groups “Bokeh Discussion - Public” group.
To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe.
To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%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/75e83970-9ace-4ac5-8bcf-d0c1ac63ff95%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/2c2c12e4-652c-4008-9ff8-049a23cb0dce%40continuum.io.

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

⌁   Link to post
Bryan
Bryan

You could check the dimension attribute, but it's probably easier to set the optional "name" on the axis you want to update, then you can query for that:

In [5]: p.add_layout(LinearAxis(name="foo"))

In [6]: p.select(dict(name="foo"))
Out[6]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]

Bryan

···

On Feb 3, 2015, at 9:43 AM, Max <max.groenke@gmail.com> wrote:

Thanks!
Thats what I have in there now & it works fine on my machine. However, if I change some initial conditions & the computer, the x & y axis get mixed up (I guess the "ax" list is ordered in the reversed way).
Is there a way to find out easily what is the x and what the y axis?

Thanks again,
Max

On Tuesday, February 3, 2015 at 4:08:00 PM UTC+1, Bryan Van de ven wrote:
Hi Max,

It's my pleasure. It's hard for me to say without seeing more code, but here is a diff with the current sliders_app.py that changes the axis label on every update that works for me that you can use as a reference:

bryan@laptop (git:master) ~/work/bokeh/examples/app/sliders_applet $ git diff
diff --git a/examples/app/sliders_applet/sliders_app.py b/examples/app/sliders_applet/sliders_app.py
index 26b7445..5a11f11 100644
--- a/examples/app/sliders_applet/sliders_app.py
+++ b/examples/app/sliders_applet/sliders_app.py
@@ -11,7 +11,7 @@ logging.basicConfig(level=logging.DEBUG)
import numpy as np
  
from bokeh.plotting import figure
-from bokeh.models import Plot, ColumnDataSource
+from bokeh.models import Plot, ColumnDataSource, LinearAxis
from bokeh.properties import Instance
from bokeh.server.app import bokeh_app
from bokeh.server.utils.plugins import object_page
@@ -153,6 +153,8 @@ class SlidersApp(HBox):
             self.amplitude.value
         )
  
+ ax = self.plot.select(dict(type=LinearAxis))
+ ax[0].axis_label="PARAMS: a: %s b: %s w: %s k: %s" % (a, b, w, k)
         self.source.data = dict(x=x, y=y)

To answer the other question, yes this is the "low level" interface. To give a short description:

* bokeh.models - low level object interface mirrors BokehJS, must assemble everything "by hand"

* bokeh.plotting - matlab/matplotlib level interface, helps create simple plots around glyphs

* bokeh.charts - high level schematic interface for statistical plotting

Thanks,

Bryan

> On Feb 3, 2015, at 8:57 AM, Max <max.g...@gmail.com> wrote:
>
> Hi Bryan!
> Thanks for your help & your patience.
>
> All I am doing is altering (a little bit) your "sliders_app" example. Is this "low-level"?
> The solution you posted seems to result in an empty plot (probably because there is already some axis...?)
>
> What works is something like:
> ax = obj.plot.select(dict(type=LinearAxis))
> ax[0].axis_label="my label"
>
> Thanks a lot for your help!
>
> Best,
> Max
>
>
>
>
> On Tuesday, February 3, 2015 at 3:03:36 PM UTC+1, Bryan Van de ven wrote:
> My apologies, I assumed you were using the bokeh.plotting interface. You must be assembling plots by hand from the low-level models interface? In that case the easiest thing to do (if you can) is simply to pass the label to the Axis when you create it:
>
> LinearAxis(axis_label="my label")
>
> If you need to be able to change it some time later, you could keep a reference to the Axis object you created, and set "axis_label" attribute on it directly. You can also make use of the "select" method to query a Plot for sub-objects:
>
> In [3]: from bokeh.models import *
>
> In [4]: p = Plot()
>
> In [5]: p.add_layout(LinearAxis(name="foo"))
>
> In [6]: p.select(dict(name="foo"))
> Out[6]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]
>
> In [7]: p.select(dict(type=LinearAxis))
> Out[7]: [<bokeh.models.axes.LinearAxis at 0x108695a90>]
>
> Once you have ahold of an Axis object, use ax.axis_label="my label" to set the axis label.
>
> Bryan
>
>
> > On Feb 3, 2015, at 7:54 AM, Max <max.g...@gmail.com> wrote:
> >
> > No success, unfortunately...
> >
> > File "sliders_app.py", line 132, in input_change
> > self.plot.xaxis.axis_label = "hallo"
> > AttributeError: 'Plot' object has no attribute 'xaxis'
> >
> >
> > On Tuesday, February 3, 2015 at 2:47:54 PM UTC+1, Bryan Van de ven wrote:
> > That usage was deprecated some time ago (including issuing runtime deprecation warnings) and was recently removed. Unfortunately, python does not actually show deprecation warnings by default. Try:
> >
> > self.plot.xaxis.axis_label = "hallo"
> >
> >
> > Thanks,
> >
> > Bryan
> >
> > > On Feb 3, 2015, at 3:08 AM, Max <max.g...@gmail.com> wrote:
> > >
> > > Just an update: Now -- after upgrading bokeh (to 0.7.1) -- the example does not work anymore but raises an error
> > > AttributeError: unexpected attribute 'x_axis_label' to Plot, possible attributes are above, background_fill, below, border_fill,disabled, extra_x_ranges, extra_y_ranges, h_symmetry, left, logo, min_border, min_border_bottom, min_border_left, min_border_right,min_border_top, name, outline_line_alpha, outline_line_cap, outline_line_color, outline_line_dash, outline_line_dash_offset,outline_line_join, outline_line_width, plot_height, plot_width, renderers, right, session, tags, title, title_text_align,title_text_alpha, title_text_baseline, title_text_color, title_text_font, title_text_font_size, title_text_font_style, tool_events,toolbar_location, tools, v_symmetry, x_mapper_type, x_range, y_mapper_type or y_range
> > >
> > > A reminder what I was doing:
> > > I added the line "self.plot.x_axis_label = "hallo"" to the function
> > > "input_change" of the "sliders_app" example.
> > >
> > > Thanks,
> > > Max
> > >
> > > On Tuesday, January 13, 2015 at 10:02:11 AM UTC+1, Max wrote:
> > > Another issue, that might be related:
> > > Can I (also in the sliders_app example) change the start/end value of a slider on a click? Simply using
> > > self.slider.end = 100
> > > does not throw an error -- but it also doesn't seem to work...
> > >
> > > Thanks for your help,
> > > Max
> > >
> > > On Monday, January 12, 2015 at 3:47:42 PM UTC+1, Max wrote:
> > > Hi!
> > > Thanks for the prompt response. I am using an "app". So for example if
> > > I add the line "self.plot.x_axis_label = "hallo"" to the function
> > > "input_change" of the "sliders_app" example, it does not do anything.
> > >
> > > Thanks again for your help,
> > > Max
> > >
> > >
> > > On 12 January 2015 at 15:41, Bryan Van de Ven wrote:
> > > > Can you provide a little more information? Are you storing the plot on the bokeh-server? If so, you need to push(...) the new model state to the server. Are you serving up a new static plot from something like Flask, every time the button is pushed? in that case you will need to regenerate the pot js/div using bokeh.embed functions after changing the label, before serving the content. More context would help us,
> > > >
> > > > Thanks,
> > > >
> > > > Bryan
> > > >
> > > >
> > > >> On Jan 12, 2015, at 4:42 AM, Max wrote:
> > > >>
> > > >> Hello.
> > > >> Is it possible to change an axis label on the click of a button?
> > > >>
> > > >> My current approach, i.e., adding the line
> > > >> self.plot.x_axis_label = "Hello World!"
> > > >> where
> > > >> self.plot = line('x0', 'y0', source=self.source,
> > > >> plot_width=600, plot_height=600,
> > > >> x_axis_label='blub'
> > > >> )
> > > >>
> > > >> does not work.
> > > >>
> > > >> Do I do something wrong or is this just not supposed to work?
> > > >>
> > > >> Best,
> > > >> Max
> > > >>
> > > >> --
> > > >> 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/b098b7d0-6caf-4be0-b94e-e561b3935c51%40continuum.io\.
> > > >> For more options, visit https://groups.google.com/a/continuum.io/d/optout\.
> > > >
> > > > --
> > > > You received this message because you are subscribed to a topic in the Google Groups "Bokeh Discussion - Public" group.
> > > > To unsubscribe from this topic, visit https://groups.google.com/a/continuum.io/d/topic/bokeh/5uQiTSJLgQU/unsubscribe\.
> > > > To unsubscribe from this group and all its topics, 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/1014C83D-0D7E-4637-8B57-5450939C211D%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/0565fd5e-f875-4bbe-a483-da6615e173c0%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/75e83970-9ace-4ac5-8bcf-d0c1ac63ff95%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/2c2c12e4-652c-4008-9ff8-049a23cb0dce%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/4392b23e-8575-419f-935c-f470b711879b%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