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

时间:2017-02-20 21:35:52

标签: python pandas bar-chart bokeh

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

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

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

enter image description here

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

2 个答案:

答案 0 :(得分:23)

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

p.xaxis.major_label_orientation = math.pi/2

另见文档中的this example

答案 1 :(得分:6)

作为轮换的替代方案,您set the orientation to a fixed value

p.xaxis.major_label_orientation = "vertical"

也应该做你想做的事。