web-dev-qa-db-fra.com

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

Est-ce que quelqu'un sait comment ajouter un titre/des étiquettes des axes x et y pour une figure de Bokeh? Par exemple. Axe X: temps, axe Y: cours de l'action.

Merci beaucoup!

21
user3361508

A partir de Bokeh 0.11.1, la section guide de l'utilisateur sur les axes montre maintenant comment modifier les propriétés des axes existants. La façon de le faire est la même que précédemment:

p = figure(width=300, height=300, x_axis_label='Initial xlabel')
p.xaxis.axis_label = 'New xlabel'
26
thorbjornwolf

Découvrez cet exemple: tableau périodique

Vous pouvez également désormais donner des options générales liées au tracé (plot_width, title, etc.) à un appel à figure(...) au lieu de la fonction de rendu (circle, dans cet exemple)

9
bigreddot

Je suis venu avec cette technique pour changer les étiquettes d'axe en utilisant CustomJS:

  1. Sur votre déclaration fig = figure(...), définissez x_axis_locationet y_axis_location où vous ne voulez pas que l'axe final soit. Par exemple, si vous souhaitez que l'axe des abscisses figure en dernier et des ordonnées à gauche dans la figure finale, définissez les éléments suivants:

    x_axis_location='above', y_axis_location='right'
    
  2. Masquer les axes d'origine:

    fig.xaxis.visible = None
    fig.yaxis.visible = None
    
  3. Déclarez de nouveaux axes et ajoutez-les à la figure (c'est-à-dire, ajoutez-les aux côtés opposés à ceux que vous avez définis à 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. Ajoutez les nouveaux axes aux arguments de CustomJS, où vous pourrez modifier leurs axis_labels:

    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
tuomastik
from bokeh.plotting import figure, output_file, show
from bokeh.models.annotations import Title
p = figure(plot_width=1300, plot_height=400,x_axis_type="datetime")
p.xaxis.axis_label = 'Time'
p.yaxis.axis_label = 'Stock Price'
p.line(time,stock_price)
t = Title()
t.text = 'Stock Price during year 2018'
p.title = t
show(p)
0
Zeref