Javascript 修复在plotly.js中不起作用的x范围
我想修正x轴范围,以便在清除图例中的轨迹时,x轴范围不会改变,即使一条轨迹的范围不同 我试过:Javascript 修复在plotly.js中不起作用的x范围,javascript,plot,graph,plotly,Javascript,Plot,Graph,Plotly,我想修正x轴范围,以便在清除图例中的轨迹时,x轴范围不会改变,即使一条轨迹的范围不同 我试过: range: ["2016-05-01", "2016-05-05"] 看起来这应该是所有需要的,但x轴范围仍然在变化 如果在布局对象中设置autorange:false,则打印失败。x轴值和刻度都弄乱了。为什么会这样 但是,如果在布局对象定义之后使用 layout_autorange_after = false; 然后一切顺利 HTML: JAVASCRIPT: var data = [
range: ["2016-05-01", "2016-05-05"]
看起来这应该是所有需要的,但x轴范围仍然在变化
如果在布局对象中设置autorange:false,则打印失败。x轴值和刻度都弄乱了。为什么会这样
但是,如果在布局对象定义之后使用
layout_autorange_after = false;
然后一切顺利
HTML:
JAVASCRIPT:
var data =
[
{
x: ["2016-05-01", "2016-05-02", "2016-05-03"],
y: [4, 5, 6],
mode: "lines+markers",
name: "Test",
yaxis: "y"
},
{
x: ["2016-05-02", "2016-05-04", "2016-05-05"],
y: [10, 2, 9],
mode: "lines+markers",
name: "Test 2",
yaxis: "y2"
}
];
var layout =
{
height: "300",
width: "500",
xaxis:
{
showgrid: false,
domain:[0.2,1],
range: ["2016-05-01", "2016-05-05"],
type:"date",
showline:true,
},
yaxis:
{
title: "Test",
position: 0,
range: [3,7],
color: "red",
showline: true,
showgrid: false,
},
yaxis2:
{
title: "Test 2",
position: 0.2,
overlaying:"y",
range: [1,11],
color: "blue",
showline: true,
showgrid: false,
}
};
var layout_autorange =
{
height: "300",
width: "500",
xaxis:
{
showgrid: false,
domain:[0.2,1],
range: ["2016-05-01", "2016-05-05"],
autorange: false,
type:"date",
showline:true,
},
yaxis:
{
title: "Test",
position: 0,
range: [3,7],
color: "red",
showline: true,
showgrid: false,
},
yaxis2:
{
title: "Test 2",
position: 0.2,
overlaying:"y",
range: [1,11],
color: "blue",
showline: true,
showgrid: false,
}
};
Plotly.plot('graph', data, layout);
Plotly.plot('autorange', data, layout_autorange);
layout_autorange_after = JSON.parse(JSON.stringify(layout));
layout_autorange_after.xaxis.autorange = false;
Plotly.plot('autorange-set-after', data, layout_autorange_after)
您正在使用
日期
作为轴类型
。从:
如果轴类型
为“日期”,则必须以毫秒为单位将日期转换为unix时间
如果您转换日期(并稍微调整x轴),它应该按预期工作,即不需要autorange=false
,删除一条跟踪不会改变轴
var数据=
[
{
x:[1462060800001462147200000,1462233600000],
y:[4,5,6],
模式:“行+标记”,
名称:“测试”,
亚克斯:“y”
},
{
x:[1462233600000、146232000000、1462406400000],
y:[10,2,9],
模式:“行+标记”,
名称:“测试2”,
亚克斯:“y2”
}
];
变量布局=
{
高度:“300”,
宽度:“500”,
xaxis:
{
showgrid:false,
域:[0.2,1],
范围:[1462060800000-60000001462406400000],
秀行:没错,
类型:“日期”
},
亚克斯:
{
标题:“测试”,
位置:0,
范围:[3,7],
颜色:“红色”,
秀行:没错,
showgrid:false,
},
yaxis2:
{
标题:“测试2”,
位置:0.2,
叠加:“y”,
范围:[1,11],
颜色:“蓝色”,
秀行:没错,
showgrid:false,
}
};
Plotly.绘图(‘图形’、数据、布局)代码>
非常感谢您。这也解决了plotlyJS的“未捕获范围错误:超过最大调用堆栈大小”问题您是我的英雄
var data =
[
{
x: ["2016-05-01", "2016-05-02", "2016-05-03"],
y: [4, 5, 6],
mode: "lines+markers",
name: "Test",
yaxis: "y"
},
{
x: ["2016-05-02", "2016-05-04", "2016-05-05"],
y: [10, 2, 9],
mode: "lines+markers",
name: "Test 2",
yaxis: "y2"
}
];
var layout =
{
height: "300",
width: "500",
xaxis:
{
showgrid: false,
domain:[0.2,1],
range: ["2016-05-01", "2016-05-05"],
type:"date",
showline:true,
},
yaxis:
{
title: "Test",
position: 0,
range: [3,7],
color: "red",
showline: true,
showgrid: false,
},
yaxis2:
{
title: "Test 2",
position: 0.2,
overlaying:"y",
range: [1,11],
color: "blue",
showline: true,
showgrid: false,
}
};
var layout_autorange =
{
height: "300",
width: "500",
xaxis:
{
showgrid: false,
domain:[0.2,1],
range: ["2016-05-01", "2016-05-05"],
autorange: false,
type:"date",
showline:true,
},
yaxis:
{
title: "Test",
position: 0,
range: [3,7],
color: "red",
showline: true,
showgrid: false,
},
yaxis2:
{
title: "Test 2",
position: 0.2,
overlaying:"y",
range: [1,11],
color: "blue",
showline: true,
showgrid: false,
}
};
Plotly.plot('graph', data, layout);
Plotly.plot('autorange', data, layout_autorange);
layout_autorange_after = JSON.parse(JSON.stringify(layout));
layout_autorange_after.xaxis.autorange = false;
Plotly.plot('autorange-set-after', data, layout_autorange_after)