调整x_axis_label或y_axis_label字体/字体大小(散景)

时间:2014-12-18 13:51:01

标签: python bokeh

有没有办法在Bokeh(0.70)中调整x_axis_labely_axis_label字体/字体大小?我知道一种使用title_text_font_size属性调整标题字体大小的方法,使用:

figure (..., title_text_font_size="12pt")

有没有办法指定类似的东西:

figure (..., x_axis_label_text_font_size='10pt')

(使用<name> _ text_font_size的约定)来指示字体大小属性。以上都行不通。如果不存在,有人可以就如何在cofeescript + API方面进行这种调整提出一些指示,那么可以回馈给项目吗?感谢

2 个答案:

答案 0 :(得分:15)

图中公开了可用于此的xaxis和yaxis属性。在您的用例中,它应该能够使用:

p.xaxis.axis_label = 'whatever'
p.xaxis.axis_label_text_font_size = "40pt"

答案 1 :(得分:0)

我想出了一种使用CustomJS更改轴标签的技术:

  1. fig = figure(...)声明中,将x_axis_locationy_axis_location设置为您不希望最终轴的位置。例如,如果要在最终图中将x轴放在底部,将y轴放在左侧,请设置以下内容:

    x_axis_location='above', y_axis_location='right'
    
  2. 隐藏原始轴:

    fig.xaxis.visible = None
    fig.yaxis.visible = None
    
  3. 声明新轴并将它们添加到图中(即,将它们添加到您在步骤1中设置的轴的相对侧):

    from bokeh.models import LinearAxis
    xaxis = LinearAxis(axis_label="Initial x-axis label")
    yaxis = LinearAxis(axis_label="Initial y-axis label")
    fig.add_layout(xaxis, 'below')
    fig.add_layout(yaxis, 'left')
    
  4. 将新轴添加到CustomJS的参数中,您可以在其中更改axis_label s:

    callback = CustomJS(args=dict(source=source,
                                  xaxis=xaxis,
                                  yaxis=yaxis), code="""
    
        xaxis.attributes.axis_label = "New x-axis label";
        yaxis.attributes.axis_label = "New y-axis label";
        xaxis.change.emit();
        yaxis.change.emit();
    
        """)