【问题标题】:how to adjust # of ticks on Bokeh axis (labels are overlapping on small figures)如何调整散景轴上的刻度数(标签在小数字上重叠)
【发布时间】:2015-03-08 19:30:09
【问题描述】:

我有一个垂直堆叠和对齐的数字的多图散景图。因为我想垂直对齐绘图,所以 y 轴标签旋转为垂直而不是水平。

在某些情况下,Bokeh 会产生过多的刻度,以至于刻度标签完全重叠,难以辨认。这是一个例子:

import bokeh.plotting as bp
import numpy as np

y = np.random.uniform(0, 300, 50)
x = np.arange(len(y))

bp.output_file("/tmp/test.html", "test")
plot = bp.figure(plot_width=800, plot_height=200)
plot.yaxis.axis_label_text_font_size = "12pt"
plot.yaxis.major_label_orientation = 'vertical'

plot.line (x,y)
bp.show(plot)

没有使渲染器足够聪明以自动生成更少的标签,有没有办法指示要放置在轴上的标签的数量?

似乎生成的标签数量与数据的范围有关,就其与 10 次方的亲和力而言。

【问题讨论】:

    标签: python plot bokeh axis


    【解决方案1】:

    看起来仍然没有直接的方法来指定它。请关注相关issue。这是一种解决方法:

    from bokeh.models import SingleIntervalTicker, LinearAxis
    
    plot = bp.figure(plot_width=800, plot_height=200, x_axis_type=None)
    ticker = SingleIntervalTicker(interval=5, num_minor_ticks=10)
    xaxis = LinearAxis(ticker=ticker)
    plot.add_layout(xaxis, 'below')
    

    您可以通过SingleIntervalTicker中的interval参数控制票数。

    【讨论】:

    • 嗯,实际上图形/布局是在一个与数据渲染分开的通用类中创建的,所以那时我无法知道使用这个技巧的数据的实际范围。也就是说,它确实提供了一种可能的解决方法,只是不是我可以在我的情况下使用的解决方法,因此将标记为已回答。谢谢
    【解决方案2】:

    您现在可以使用desired_num_ticks 属性控制刻度数。查看散景文档中的示例(以及此 issue)。

    例如,在您的情况下,是这样的:plot.yaxis[0].ticker.desired_num_ticks = 10

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 2019-05-11
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多