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!
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'
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)
Je suis venu avec cette technique pour changer les étiquettes d'axe en utilisant CustomJS
:
Sur votre déclaration fig = figure(...)
, définissez x_axis_location
et 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'
Masquer les axes d'origine:
fig.xaxis.visible = None
fig.yaxis.visible = None
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')
Ajoutez les nouveaux axes aux arguments de CustomJS
, où vous pourrez modifier leurs 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();
""")
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)