python - examples - Etiquetas de eje X e Y para figura Bokeh
python bokeh download (4)
¿Alguien sabe cómo agregar títulos / etiquetas de eje xey para una figura de Bokeh? Ej. Eje X: tiempo, eje Y: precio de las acciones.
¡Muchas gracias!
A partir de Bokeh 0.11.1, la sección de guía del usuario sobre ejes ahora muestra cómo editar las propiedades de los ejes existentes. La forma de hacerlo es la misma que antes:
p = figure(width=300, height=300, x_axis_label=''Initial xlabel'')
p.xaxis.axis_label = ''New xlabel''
Echa un vistazo a este ejemplo: tabla periódica
Ahora también puede dar opciones generales relacionadas con el trazado ( plot_width
, title
, etc.) a una llamada a figure(...)
lugar de la función de renderizador ( circle
, en ese ejemplo)
Se me ocurrió esta técnica para cambiar las etiquetas de los ejes utilizando CustomJS
:
En su declaración
fig = figure(...)
, establezcax_axis_location
yy_axis_location
donde no desee que esté el eje final. Por ejemplo, si desea tener el eje x en la parte inferior y el eje y en la izquierda en la figura final, configure lo siguiente:x_axis_location=''above'', y_axis_location=''right''
Ocultar los ejes originales:
fig.xaxis.visible = None fig.yaxis.visible = None
Declare nuevos ejes y agréguelos a la figura (es decir, agréguelos a los lados opuestos de los que estableció en el paso 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'')
Agregue los nuevos ejes a los argumentos de
CustomJS
, donde puede cambiar suaxis_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)