Étiquettes des axes X et Y pour la figure de Bokeh

est-ce que quelqu'un sait comment ajouter des titres/étiquettes des axes x et y pour une figure de Bokeh? E. g. Axe des X: temps, l'axe Y: prix de l'action.

Merci beaucoup!

20
demandé sur jruizaranguren 2014-06-10 05:29:38

3 réponses

à partir de Bokeh 0.11.1, le guide de l'Utilisateur section sur les axes montre maintenant comment éditer les propriétés des axes existants. La façon de le faire est la même qu'avant:

p = figure(width=300, height=300, x_axis_label='Initial xlabel')
p.xaxis.axis_label = 'New xlabel'
21
répondu NTAWolf 2018-09-30 20:53:41

regardez cet exemple:tableau périodique

vous pouvez aussi maintenant donner des options générales liées à la parcelle (plot_width,title, etc.) pour un appel à figure(...) au lieu de la fonction de rendu (circle, dans cet exemple)

9
répondu bigreddot 2014-06-10 01:36:57

j'ai inventé cette technique pour changer les étiquettes des axes en utilisant CustomJS:

  1. sur votre fig = figure(...) déclaration, set x_axis_locationet y_axis_location où vous ne voulez pas le dernier axe. Par exemple, si vous voulez avoir l'axe des x en bas et l'axe des y à gauche dans la figure finale, définissez ce qui suit:

    x_axis_location='above', y_axis_location='right'
    
  2. Masquer l'origine des axes:

    fig.xaxis.visible = None
    fig.yaxis.visible = None
    
  3. déclarer les nouveaux axes et les ajouter à la figure (c'est à dire, ajouter les côtés opposés de ceux que vous avez défini à l'étape 1):

    from bokeh.models import LinearAxis
    xaxis = LinearAxis(axis_label="Initial x-axis label")
    yaxis = LinearAxis(axis_label="Initial y-axis label")
    fig.add_layout(xaxis, 'below')
    fig.add_layout(yaxis, 'left')
    
  4. ajouter les nouveaux axes aux arguments de CustomJS, où vous pouvez modifier leur axis_label s:

    callback = CustomJS(args=dict(source=source,
                                  xaxis=xaxis,
                                  yaxis=yaxis), code="""
    
        xaxis.attributes.axis_label = "New x-axis label";
        yaxis.attributes.axis_label = "New y-axis label";
        xaxis.change.emit();
        yaxis.change.emit();
    
        """)
    
1
répondu tuomastik 2018-07-13 14:27:27