web-dev-qa-db-fra.com

Comment faire pivoter les étiquettes de l'axe X dans la figure bokeh?

Je commence tout juste à utiliser Bokeh. Ci-dessous, je crée quelques arguments que j'utilise pour le rect figure .

x_length = var_results.index * 5.5

La multiplication de l'index par 5,5 m'a donné plus de place entre les étiquettes.

names = var_results.Feature.tolist()
y_length = var_results.Variance
y_center = var_results.Variance/2

var_results est un Pandas dataframe qui a un index typique, séquentiel et non répétitif. var_results a également une colonne Features qui est des chaînes de noms non répétés, et enfin elle a une colonne Variance qui est un flottant de type.

r = figure(x_range = names, 
           y_range = (-0.05,.3), 
           active_scroll = 'wheel_zoom', 
           x_axis_label = 'Features', 
           y_axis_label = 'Variance')



r.rect(x_length, 
       y_center, 
       width=1, 
       height=y_length, 
       color = "#ff1200")
output_notebook()
show(r)

Je fais essentiellement un graphique à barres avec des rectangles. Bokeh semble être très personnalisable. Mais mon graphique semble littéralement rugueux sur les bords.

enter image description here

Comme vous pouvez le voir, il y a une tache laide juste en dessous du graphique et au-dessus du titre de l'axe des X "Caractéristiques". Il s'agit des titres d'étiquette (techniquement les titres rectangulaires). Comment puis-je créer de l'espace et peut-être faire pivoter à 45 degrés les étiquettes afin qu'elles soient lisibles et pas seulement un désordre qui se chevauchent?

16
Liam Hanninen

Afin de faire pivoter les étiquettes, par exemple de 90 degrés vers la gauche, vous pouvez définir major_label_orientation à π/2. Cela peut être fait soit lors de la création de l'élément d'axe (en tant que kwarg pour le constructeur d'axe si vous utilisez un tracé de bas niveau), soit également après avoir créé un tracé/une figure, par exemple en:

p.xaxis.major_label_orientation = math.pi/2

Voir aussi cet exemple dans la documentation.

25
bluenote10

Comme alternative à la rotation, vous définissez l'orientation sur une valeur fixe :

p.xaxis.major_label_orientation = "vertical"

devrait faire ce que vous voulez aussi.

6
serv-inc