gpt4 book ai didi

javascript - 在 BokehJS 中添加第二个 y 轴

转载 作者:行者123 更新时间:2023-11-29 21:11:59 25 4
gpt4 key购买 nike

我一直在尝试向我的 BokehJS 绘图添加第二个 y 轴,但似乎找不到正确的方法。在 python Bokeh 中我让它工作,但在 javascript 中它似乎工作不同。这是最小的例子,我如何尝试创建和使用第二个轴:

        var plt = Bokeh.Plotting;

// create some data and a ColumnDataSource
var x = Bokeh.LinAlg.linspace(-0.5, 20.5, 10);
var y = x.map(function (v) { return v * 0.5 + 3.0; });
var source = new Bokeh.ColumnDataSource({ data: { x: x, y: y }});

var p = plt.figure({extra_y_ranges: {"y2": new Bokeh.Range1d({start: -1.5, end: 150})} });
p.yaxis.axis_label = 'Axis Left';
p.add_layout(new Bokeh.LinearAxis({ y_range_name: "y2", axis_label: 'Axis Right'}), 'right');

// add a Line glyph
var line = new Bokeh.Line({
x: {field: "x"},
y: {field: "y"},
line_color: "#F00",
line_width: 3
});

p.add_glyph(line, source);

// add a Line glyph
var line = new Bokeh.Line({
x: {field: "x"},
y: {field: "y"},
line_color: "#FF0",
line_width: 2,
y_range_name: "y2"
});

p.add_glyph(line, source);

plt.show(p);

轴显示,但线仍然使用左轴的坐标。

最佳答案

诀窍不是直接将 y_range_name 属性添加到线条,而是将线条的字形对象添加到图形:

var l = p.add_glyph(line, source);
l.y_range_name = "y2";

关于javascript - 在 BokehJS 中添加第二个 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com