如何在散景图中旋转X轴标签?

Lia*_*nen 18 python bar-chart pandas bokeh

我刚刚开始使用Bokeh.下面我创建一些用于rect图的 args .

x_length = var_results.index * 5.5
Run Code Online (Sandbox Code Playgroud)

将指数乘以5.5可以让我在标签之间留出更多空间.

names = var_results.Feature.tolist()
y_length = var_results.Variance
y_center = var_results.Variance/2
Run Code Online (Sandbox Code Playgroud)

var_results是一个Pandas数据帧,具有典型的,顺序的,非重复索引.var_results还有一个列Features是非重复名称的字符串,最后它有一个Variancedtype 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)
Run Code Online (Sandbox Code Playgroud)

我基本上是用矩形制作条形图.Bokeh似乎非常可定制.但是我的图表在边缘看起来很粗糙.

在此输入图像描述

正如您所看到的,在图表下方和X轴标题"特征"上方有一个丑陋的污迹.这是标签标题(技术上是矩形标题).如何为标签创建空间并将其旋转到45度,以便它们可读,而不仅仅是重叠的混乱?

blu*_*e10 27

为了将标签旋转例如向左旋转90度,可以设置major_label_orientation为π/ 2.这可以在创建轴元素时完成(如果使用低级绘图,则作为轴构造函数的kwarg),也可以在创建绘图/图形后完成,例如:

p.xaxis.major_label_orientation = math.pi/2
Run Code Online (Sandbox Code Playgroud)

另请参阅文档中的此示例.


ser*_*inc 7

作为旋转的替代方法,您可以将方向设置为固定值:

p.xaxis.major_label_orientation = "vertical"
Run Code Online (Sandbox Code Playgroud)

也应该做你想做的事.