2015-01-10 12 views
8

Ho un grafico Bokeh a più cifre di figure allineate verticalmente impilate &. Poiché desidero allineare verticalmente i grafici, le etichette dell'asse y vengono ruotate per essere verticali anziché orizzontali.come regolare il # di segni di spunta sull'asse Bokeh (le etichette si sovrappongono a piccole cifre)

In alcuni scenari, Bokeh produce troppe zecche, in modo che le etichette di graduazione si sovrappongano completamente, rendendo illeggibile. Ecco un esempio:

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) 

breve di rendere il renderer abbastanza intelligente per produrre automaticamente un minor numero di etichette, c'è un modo per indicare il # di etichette da collocare su un asse?

Sembra che il # di etichette generati ha a che fare con la gamma dei dati, in termini di affinità con una potenza di 10.

risposta

4

Sembra che non esiste ancora un modo diretto per specificare questo. Si prega di seguire il relativo issue. Si tratta di una soluzione alternativa:

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') 

enter image description here

è possibile controllare il numero di biglietti attraverso il parametro interval in SingleIntervalTicker.

+0

Hmm, in realtà le figure/layout sono creati in una classe generica separata dal rendering dei dati, quindi a quel punto non ho modo di conoscere l'effettiva gamma dei dati per utilizzare questo trucco. Detto questo, presenta una possibile soluzione alternativa, ma non proprio quella che posso usare nella mia situazione, quindi segnerò come risposta. Grazie –

7

È ora possibile controllare il numero di zecche con la proprietà desired_num_ticks. Guarda l'esempio dei documenti bokeh here (e questo issue).

Ad esempio, nel tuo caso, qualcosa del genere: plot.yaxis[0].ticker.desired_num_ticks = 10.

+0

Questo è un commento, non una risposta. – Alex

+0

Ho rivisto la tua risposta. Dovresti supportare la tua risposta e spiegare di più. – Alex

+0

@alireza fatto ... grazie :) – Kevad

Problemi correlati