首页 > 解决方案 > 散景 - 绘制上轴和右轴

问题描述

我认为这简单,但我找不到答案。我正在尝试绘制一个散景散点图,同时绘制上轴和右轴。我想要这样的东西(使用生成gnuplot):

gnuplot

这是我的简单bokeh代码:

from bokeh.plotting import figure, output_file, show

output_file("test.html")
p = figure()

p.xgrid.grid_line_color = None
p.ygrid.grid_line_color = None
p.axis.major_tick_in = 10
p.axis.major_tick_out = 0
p.axis.minor_tick_in = 5
p.axis.minor_tick_out = 0

p.line([-10,10], [-10,10])
show(p)

导致:

背景虚化

所以我希望能够镜像左/右和上/下轴。我试过使用LinearAxis()inbokeh没有成功。通过添加以下行:

p.add_layout(LinearAxis(), 'right')
p.add_layout(LinearAxis(), 'above')

我接近了,但还没有:

散景2

我没有找到一种方法来删除顶部/右侧的数字,并且里面也有记号。任何帮助表示赞赏。先感谢您!

更新

我能够根据接受的答案获得所需的布局:

from bokeh.plotting import figure, output_file, show

output_file("test.html")
p = figure()

p.xgrid.grid_line_color = None
p.ygrid.grid_line_color = None
p.axis.major_tick_in = 10
p.axis.major_tick_out = 0
p.axis.minor_tick_in = 5
p.axis.minor_tick_out = 0

p.add_layout(LinearAxis(major_label_text_alpha=0,
                        minor_tick_in=5,minor_tick_out=0,
                        major_tick_in=10,major_tick_out=0),'right')
p.add_layout(LinearAxis(major_label_text_alpha=0,
                        minor_tick_in=5,minor_tick_out=0,
                        major_tick_in=10,major_tick_out=0),'above')

p.line([-10,10], [-10,10])
show(p)

背景虚化3

标签: pythonbokeh

解决方案


您可以在创建 Axis 对象时指定刻度线的文本属性:

p.add_layout(
    LinearAxis(
       major_label_text_alpha=0
    ),
    'right'
)

以下是相关文档: https ://docs.bokeh.org/en/latest/docs/reference/models/axes.html


推荐阅读