2016-08-16 2 views
0

У меня есть сюжет с несколькими осями у и легенда с правой стороны. Я хочу только показать ось 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); 

ответ

0

сейчас я могу ответить на свой вопрос сам.

Plotly.relayout('myDiv', 'yaxis2', null); 

, который удаляет «yaxis2» из макета. Если вы хотите удалить следы, принадлежащие этой оси, сначала удалите следы.

Plotly.deleteTraces('myDiv',[x]); // 0 delete first trace, 1 second 2 third... 
Plotly.relayout('myDiv', 'yaxis2', null); 
+1

У меня такая же проблема. Нет необходимости показывать ось, когда вы прячете трассировку. Я не понимаю, как вы решили проблему. Есть ли событие onClick для элементов легенды? Я не нашел. – ReactiveMax

Смежные вопросы