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

How to rotate X-axis labels in bokeh figure?

我刚开始使用 Bokeh。下面我创建了一些用于 rect figure.

的参数
x_length = var_results.index * 5.5

将索引乘以 5.5 给了我更多标签之间的空间。

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

var_results 是一个 Pandas 数据帧,具有典型的顺序 non-repeating 索引。 var_results 还有一列 Features 是 non-repeated 的字符串,名称,最后它有一列 Variance 是 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)

我实际上是在制作一个带有矩形的条形图。散景似乎非常可定制。但是我的图表在边缘看起来很粗糙,字面意思。

如您所见,图表下方和 x-axis 标题 'Features' 上方有一个难看的污迹。这是标签标题(技术上是矩形标题)。我如何为标签创建 space 并可能将其旋转 45 度,以便它们可读,而不仅仅是重叠的一团糟?

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

p.xaxis.major_label_orientation = math.pi/2

# or alternatively:
p.xaxis.major_label_orientation = "vertical"

另请参阅文档中的 this example

作为旋转的替代方法,您 set the orientation to a fixed value:

p.xaxis.major_label_orientation = "vertical"

也应该做你想做的事。