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

46

我刚开始使用Bokeh。以下是我创建的一些参数,用于rect图形

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 的列,其中包含非重复名称字符串,最后还有一个 dtype 为 float 的 Variance 列。

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轴标题“Features”上方有一个丑陋的污迹。这是标签标题(技术上是矩形标题)。我如何创建空间,并将标签旋转45度,以使它们易于阅读,而不仅仅是重叠混乱?


2
http://bokeh.pydata.org/en/latest/docs/user_guide/styling.html#tick-label-orientation - bigreddot
2个回答

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

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

请参见文档中的这个示例


1
奇怪的是,这似乎对我不起作用——它可以使用文本标签吗?人们会认为它会将所有标签都视为文本,但这是我能看到区别我的情况的全部。如果我不添加这行代码,图形会呈现出来。 - Addem

15

除了旋转之外,您可以将方向设置为固定值作为替代:

p.xaxis.major_label_orientation = "vertical"

你希望做什么,就应该去做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接