cómo ajustar el número de marcas en el eje Bokeh (las tags se superponen en figuras pequeñas)

Tengo un diagtwig de Bokeh de figuras múltiples de figuras alineadas y astackdas verticalmente. Como quiero alinear los gráficos verticalmente, las tags del eje y se giran para que sean verticales en lugar de horizontales.

En ciertos escenarios, Bokeh produce demasiados tics, de manera que las tags de tic se superponen completamente, haciendo ilegible. Aquí hay un ejemplo:

import bokeh.plotting as bp import numpy as np y = np.random.uniform(0, 300, 50) x = np.arange(len(y)) bp.output_file("/tmp/test.html", "test") plot = bp.figure(plot_width=800, plot_height=200) plot.yaxis.axis_label_text_font_size = "12pt" plot.yaxis.major_label_orientation = 'vertical' plot.line (x,y) bp.show(plot) 

Aparte de hacer que el renderizador sea lo suficientemente inteligente como para producir menos tags automáticamente, ¿hay alguna forma de indicar el número de tags que se colocarán en un eje?

Parece que el número de tags generadas tiene que ver con el rango de los datos, en términos de su afinidad a una potencia de 10.

Parece que todavía no hay una forma directa de especificar esto. Por favor siga el tema relacionado. Esta es una solución:

 from bokeh.models import SingleIntervalTicker, LinearAxis plot = bp.figure(plot_width=800, plot_height=200, x_axis_type=None) ticker = SingleIntervalTicker(interval=5, num_minor_ticks=10) xaxis = LinearAxis(ticker=ticker) plot.add_layout(xaxis, 'below') 

introduzca la descripción de la imagen aquí

Puede controlar el número de tickets a través del parámetro de interval en SingleIntervalTicker .

Puede controlar el número de tics ahora con la propiedad desired_num_ticks . Mire el ejemplo de los documentos bokeh (y este problema ).

Por ejemplo, en su caso, algo como esto: plot.yaxis[0].ticker.desired_num_ticks = 10 .