初始化y轴以0为中心

时间:2015-07-08 22:28:21

标签: plot bokeh

我生成一些显示百分比错误结果的线图。如果在第一次加载时y轴以0为中心,那将是很好的。我知道我可以手动设置y轴的边界,但是必须为每个图形手动设置它们是很繁琐的。

有没有办法将数字设置为沿y轴居中为0?

以下是一些可能提供其他详细信息的代码 -

from bokeh.plotting import figure, output_file, show
from bokeh.io import gridplot, hplot

# prepare some data
x = [1, 2, 3, 4, 5]
y1 = [-10, -9, 23, 4, -6]
y2 = [-15, -4, 26, 32, -45]
y3 = [-42, -20, -13, -34, -59]
y4 = [-23, -34, -32, -43, -53]

# output to static HTML file
output_file("lines.html", title="line plot example")

# create a new plot with a title and axis labels
p = figure(title="simple line example", x_axis_label='x', y_axis_label='y')
p.line(x, y1, line_width=2)
p.line(x, y2, line_width=2)

p2 = figure(title="simple line example", x_axis_label='x', y_axis_label='y')
p2.line(x, y3, line_width=2)
p2.line(x, y4, line_width=2)

p = hplot(p, p2)
show(p)

这会生成两个图。右边的那个显示了我遇到的问题。由于所有值都是负的,因此y轴边界变窄到大约-10到-60。我希望该图表在-60到60之间绑定,以便它在0处对齐。

更新: 我最后只定义了一个函数,它将返回y值的绝对最大值。然后,我正在执行以下操作来设置限制:

axisLimit = getAxisRange(list1, list2) #get absolute max from the two lists
p.y_range = Range1d(start=-1*axisLimit, end=axisLimit)

1 个答案:

答案 0 :(得分:1)

没有像您描述的那样围绕轴绘图的Bokeh方法。你在更新中做了什么似乎是一个很好的解决方案。欢迎您在https://github.com/bokeh/bokeh/issues

的Bokeh项目跟踪器上打开一个问题