如何隐藏多个轴?
How to hide multiple axes plotly?
我有一个包含多个 y 轴的绘图,右侧有一个图例。
当在图例上选择图形时,我只想显示 y 轴。
当我点击图例时我可以隐藏图表,但轴都是可见的。
如何动态隐藏 y 轴?
var trace1 = {
x: [1, 2, 3],
y: [40, 50, 60],
name: 'yaxis data',
type: 'scatter'
};
var trace2 = {
x: [2, 3, 4],
y: [4, 5, 6],
name: 'yaxis2 data',
yaxis: 'y2',
type: 'scatter'
};
var data = [trace1, trace2];
var layout = {
title: 'Double Y Axis Example',
yaxis: {title: 'yaxis title'},
yaxis2: {
title: 'yaxis2 title',
titlefont: {color: 'rgb(148, 103, 189)'},
tickfont: {color: 'rgb(148, 103, 189)'},
overlaying: 'y',
side: 'right'
}
};
Plotly.newPlot('myDiv', data, layout);
现在我可以自己回答我的问题了。
Plotly.relayout('myDiv', 'yaxis2', null);
从布局中删除 'yaxis2'。
如果要删除属于该轴的迹线,则先删除迹线。
Plotly.deleteTraces('myDiv',[x]); // 0 delete first trace, 1 second 2 third...
Plotly.relayout('myDiv', 'yaxis2', null);
您可以收听 plot_restyle
事件,然后根据您希望代码的灵活程度(和复杂程度),您可以通过更改轴以某种方式隐藏要隐藏的轴' visible
属性 到 false
到
Plotly.relayout('myDiv', { 'yaxis2.visible': false });
// and to undo...
Plotly.relayout('myDiv', { 'yaxis2.visible': true });
要查看完全动态的示例,请查看 https://jsfiddle.net/bytesnz/t2y3yaa3/。请注意,所有 yaxis 都有 anchor: 'free'
我有一个包含多个 y 轴的绘图,右侧有一个图例。 当在图例上选择图形时,我只想显示 y 轴。 当我点击图例时我可以隐藏图表,但轴都是可见的。 如何动态隐藏 y 轴?
var trace1 = {
x: [1, 2, 3],
y: [40, 50, 60],
name: 'yaxis data',
type: 'scatter'
};
var trace2 = {
x: [2, 3, 4],
y: [4, 5, 6],
name: 'yaxis2 data',
yaxis: 'y2',
type: 'scatter'
};
var data = [trace1, trace2];
var layout = {
title: 'Double Y Axis Example',
yaxis: {title: 'yaxis title'},
yaxis2: {
title: 'yaxis2 title',
titlefont: {color: 'rgb(148, 103, 189)'},
tickfont: {color: 'rgb(148, 103, 189)'},
overlaying: 'y',
side: 'right'
}
};
Plotly.newPlot('myDiv', data, layout);
现在我可以自己回答我的问题了。
Plotly.relayout('myDiv', 'yaxis2', null);
从布局中删除 'yaxis2'。 如果要删除属于该轴的迹线,则先删除迹线。
Plotly.deleteTraces('myDiv',[x]); // 0 delete first trace, 1 second 2 third...
Plotly.relayout('myDiv', 'yaxis2', null);
您可以收听 plot_restyle
事件,然后根据您希望代码的灵活程度(和复杂程度),您可以通过更改轴以某种方式隐藏要隐藏的轴' visible
属性 到 false
到
Plotly.relayout('myDiv', { 'yaxis2.visible': false });
// and to undo...
Plotly.relayout('myDiv', { 'yaxis2.visible': true });
要查看完全动态的示例,请查看 https://jsfiddle.net/bytesnz/t2y3yaa3/。请注意,所有 yaxis 都有 anchor: 'free'