我正在尝试在具有辅助y轴的一个图形上绘制两组图形。我不能让他们两个都根据数据进行自动缩放。
我无法设置范围,因为我正在制表10个数字,并且该代码将用于范围会有所不同的不同来源。另外,目前,我已将一个范围设置为特定值,但我想将它们都设置为自动缩放。
数据框如下:
波长340440550 ... 340std 440std 2017-07-01 14:40 2.05 3.02 2.14 ... 0.002 0.00054 ....
TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
p = figure(tools=TOOLS, x_axis_type='datetime',plot_height=400,
plot_width=700,
outline_line_color = 'gray',
y_axis_label = 'Radiance[W/m^2.sr.nm]',
y_range = DataRange1d()
)
# Setting the second y axis range name and range
p.extra_y_ranges = {"foo": Range1d(start=0, end=0.000006)}
# Adding the second axis to the plot.
p.add_layout(LinearAxis(y_range_name="foo"), 'right')
p.line(x='Time', y='340.0', line_color="darkcyan", line_width=1,
source=source)
p.line(x='Time',y='340.0std', line_color = 'red', line_width=1,
y_range_name="foo", source=source)
one = Panel(child=row(p), title='wavelength_one')
tabs = Tabs(tabs = [one,two,three,four,five,six])
show(tabs)
答案 0 :(得分:1)
应注意以下几点:
如果通过使用固定的result
或通过在Range1d
上手动设置start
或end
来提供明确的范围值,则Bokeh会假定您是故意这样做,并且不会覆盖您的设置(即,不再有数据范围)
仅供参考,由于不清楚您要遵循的内容,Bokeh“双”轴将始终保持其原始相对比例。初始化后,它们就不能独立变化。 (例如,缩放一个会缩放另一个缩放比例)
DataRange1d
对象具有DataRange1d
属性,以明确告诉范围自动调整范围时要考虑的字形。默认情况下,renderers
会自动尝试考虑所有可用的字形,除非另有说明:
DataRange1d
我不确定具有两个双轴自动量程是否会起作用。 AFAIK没有人尝试过。您可能只能通过以下方式来设置自动量程:通过使用一个字形配置主范围r1 = p.line(...)
p.y_range.renderers = [r1] # only auto-range based on this one line
,并在其后附加一个初始固定范围DataRange1d
(将随其他主量程缩放)
答案 1 :(得分:0)
我也在处理散景数据流。我遇到了同样的问题,我一直在寻找解决方案。我刚刚尝试了一个新东西,它帮助我解决了这个问题。
试试这个:不要放 y_range = DataRange1d()
,只需将 None 值设置为 y_range = None
。对于每个回调,我认为应该是相同的。我希望这可以帮助您解决这个问题。