How to rotate X-axis labels in bokeh figure?

爱⌒轻易说出口 提交于 2019-11-30 00:42:13

问题


I'm just starting to use Bokeh. Below I create some args I use for the rect figure.

x_length = var_results.index * 5.5

Multiplying the index by 5.5 gave me more room between labels.

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

var_results is a Pandas dataframe that has a typical, sequential, non-repeating index. var_results also has a column Features that is strings of non-repeated, names, and finally it has a column Variance which is dtype float.

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)

I'm essentially making a bar chart with rectangles. Bokeh seems to be very customizable. But my graph looks rough around the edges, literally.

As you can see there is an ugly smudge just below the chart and above the x-axis title 'Features'. This is the label titles (technically the rectangle titles). How do I create space for and perhaps rotate to 45 degrees the labels so that they are readable and not just an overlapping mess?


回答1:


In order to rotate the labels e.g. by 90 degrees to the left, you can set major_label_orientation to π/2. This can be done either when creating the axis element (as a kwarg to the axis constructor if you are using low level plotting) or also after you have created a plot/figure, for instance by:

p.xaxis.major_label_orientation = math.pi/2

See also this example in the documentation.




回答2:


As an alternative to rotation, you set the orientation to a fixed value:

p.xaxis.major_label_orientation = "vertical"

should do what you want, too.



来源:https://stackoverflow.com/questions/42354648/how-to-rotate-x-axis-labels-in-bokeh-figure

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!