散景绘制第二轴 - 如何获得主轴的限制?
bokeh plotting second axis - how to get limits of primary axis?
我有一个散景图,x 轴上有日期 (data["obs_date"]
),我希望顶部的另一个 x 轴覆盖相同的范围,但以不同的格式显示 (mjd
下面)。
我尝试添加第二个轴:
plot.extra_x_ranges = {"MJD":
Range1d(start=Time(min(data["obs_date"])).mjd,
end=Time(max(data["obs_date"])).mjd)}
plot.add_layout(LinearAxis(x_range_name="MJD", axis_label="MJD",
axis_label_text_font_size="16pt"),
"above")
但是,因为散景在图的限制中添加了一个小缓冲区,使用 min
max
of data["obs_date"]
作为这个新轴的限制给了我一个小的偏移量 -在下图中,16 Jan 2018
应与 58134
对齐。当我只有一个点可以绘制时,它也会导致它中断。
如何设置新轴的范围,使其等于主轴范围的 'aware'?来自 matplotlib 背景,我想我正在寻找的等价物是 ax.get_xlim()
.
Bokeh 隐式使用 DataRange1d
,它根据其 range_padding
、range_padding_units
和 follow_interval
字段计算填充边界,以及基础比例是线性还是对数.但它不存储计算值。
因此,此时您唯一的选择是为两个范围明确设置边界,或者根据上述 DataRange1d
字段和比例类型计算额外范围的边界。
我有一个散景图,x 轴上有日期 (data["obs_date"]
),我希望顶部的另一个 x 轴覆盖相同的范围,但以不同的格式显示 (mjd
下面)。
我尝试添加第二个轴:
plot.extra_x_ranges = {"MJD":
Range1d(start=Time(min(data["obs_date"])).mjd,
end=Time(max(data["obs_date"])).mjd)}
plot.add_layout(LinearAxis(x_range_name="MJD", axis_label="MJD",
axis_label_text_font_size="16pt"),
"above")
但是,因为散景在图的限制中添加了一个小缓冲区,使用 min
max
of data["obs_date"]
作为这个新轴的限制给了我一个小的偏移量 -在下图中,16 Jan 2018
应与 58134
对齐。当我只有一个点可以绘制时,它也会导致它中断。
如何设置新轴的范围,使其等于主轴范围的 'aware'?来自 matplotlib 背景,我想我正在寻找的等价物是 ax.get_xlim()
.
Bokeh 隐式使用 DataRange1d
,它根据其 range_padding
、range_padding_units
和 follow_interval
字段计算填充边界,以及基础比例是线性还是对数.但它不存储计算值。
因此,此时您唯一的选择是为两个范围明确设置边界,或者根据上述 DataRange1d
字段和比例类型计算额外范围的边界。