2016-07-15 1 views
0

Я пытаюсь обновить график.Ошибка обновления в стиле restyle

Вот что я пробовал.

Это мой набор данных

var scatter_data = [{ 
    "product_id": 1, 
    "color": "#ff0000", 
    "text": "Size :14", 
    "y": 4, 
    "x": 6, 
    "z": 3, 
    "size": 14 
    }, { 
    "product_id": 2, 
    "color": "#FFFFFF", 
    "text": "Size :38", 
    "y": 5, 
    "x": 4, 
    "z": 4, 
    "size": 38 
    }, { 
    "product_id": 3, 
    "color": "#00ff00", 
    "text": "Size :20", 
    "y": 3, 
    "x": 5, 
    "z": 4, 
    "size": 20 
    }, { 
    "product_id": 4, 
    "color": "#FFFFFF", 
    "text": "Size :31", 
    "y": 6, 
    "x": 0, 
    "z": 1, 
    "size": 31 
    }, { 
    "product_id": 5, 
    "color": "#00ff00", 
    "text": "Size :20", 
    "y": 0, 
    "x": 5, 
    "z": 1, 
    "size": 20 
    }, { 
    "product_id": 6, 
    "color": "#ff0000", 
    "text": "Size :18", 
    "y": 6, 
    "x": 1, 
    "z": 5, 
    "size": 18 
    }, { 
    "product_id": 7, 
    "color": "#FFa500", 
    "text": "Size :15", 
    "y": 0, 
    "x": 4, 
    "z": 2, 
    "size": 15 
    }, { 
    "product_id": 8, 
    "color": "#00ff00", 
    "text": "Size :13", 
    "y": 2, 
    "x": 1, 
    "z": 1, 
    "size": 13 
    }, { 
    "product_id": 9, 
    "color": "#FFFFFF", 
    "text": "Size :11", 
    "y": 3, 
    "x": 0, 
    "z": 1, 
    "size": 11 
    }, { 
    "product_id": 10, 
    "color": "#FFa500", 
    "text": "Size :32", 
    "y": 4, 
    "x": 2, 
    "z": 2, 
    "size": 32 
    }, { 
    "product_id": 11, 
    "color": "#0000ff", 
    "text": "Size :30", 
    "y": 1, 
    "x": 0, 
    "z": 1, 
    "size": 30 
    }, { 
    "product_id": 12, 
    "color": "#0000ff", 
    "text": "Size :39", 
    "y": 3, 
    "x": 4, 
    "z": 3, 
    "size": 39 
    }, { 
    "product_id": 13, 
    "color": "#FFFFFF", 
    "text": "Size :33", 
    "y": 2, 
    "x": 2, 
    "z": 4, 
    "size": 33 
    }, { 
    "product_id": 14, 
    "color": "#ff69b4", 
    "text": "Size :21", 
    "y": 0, 
    "x": 6, 
    "z": 6, 
    "size": 21 
    }, { 
    "product_id": 15, 
    "color": "#FFa500", 
    "text": "Size :34", 
    "y": 4, 
    "x": 4, 
    "z": 2, 
    "size": 34 
    }, { 
    "product_id": 16, 
    "color": "#FFa500", 
    "text": "Size :28", 
    "y": 0, 
    "x": 0, 
    "z": 2, 
    "size": 28 
    }, { 
    "product_id": 17, 
    "color": "#ff69b4", 
    "text": "Size :10", 
    "y": 1, 
    "x": 3, 
    "z": 1, 
    "size": 10 
    }, { 
    "product_id": 18, 
    "color": "#00ff00", 
    "text": "Size :21", 
    "y": 0, 
    "x": 5, 
    "z": 2, 
    "size": 21 
    }, { 
    "product_id": 19, 
    "color": "#ff0000", 
    "text": "Size :32", 
    "y": 6, 
    "x": 6, 
    "z": 4, 
    "size": 32 
    }, { 
    "product_id": 20, 
    "color": "#FFa500", 
    "text": "Size :16", 
    "y": 0, 
    "x": 6, 
    "z": 1, 
    "size": 16 
    }, { 
    "product_id": 21, 
    "color": "#0000ff", 
    "text": "Size :39", 
    "y": 1, 
    "x": 4, 
    "z": 2, 
    "size": 39 
    }, { 
    "product_id": 22, 
    "color": "#FFa500", 
    "text": "Size :24", 
    "y": 2, 
    "x": 4, 
    "z": 4, 
    "size": 24 
    }, { 
    "product_id": 23, 
    "color": "#0000ff", 
    "text": "Size :25", 
    "y": 5, 
    "x": 1, 
    "z": 0, 
    "size": 25 
    }, { 
    "product_id": 24, 
    "color": "#FFFFFF", 
    "text": "Size :35", 
    "y": 0, 
    "x": 6, 
    "z": 4, 
    "size": 35 
    }, { 
    "product_id": 25, 
    "color": "#ff0000", 
    "text": "Size :29", 
    "y": 4, 
    "x": 2, 
    "z": 0, 
    "size": 29 
    }, { 
    "product_id": 26, 
    "color": "#FFa500", 
    "text": "Size :26", 
    "y": 2, 
    "x": 0, 
    "z": 3, 
    "size": 26 
    }, { 
    "product_id": 27, 
    "color": "#0000ff", 
    "text": "Size :27", 
    "y": 2, 
    "x": 5, 
    "z": 5, 
    "size": 27 
    }, { 
    "product_id": 28, 
    "color": "#ff0000", 
    "text": "Size :15", 
    "y": 2, 
    "x": 5, 
    "z": 2, 
    "size": 15 
    }, { 
    "product_id": 29, 
    "color": "#ff69b4", 
    "text": "Size :27", 
    "y": 3, 
    "x": 1, 
    "z": 4, 
    "size": 27 
    }, { 
    "product_id": 30, 
    "color": "#FFFFFF", 
    "text": "Size :16", 
    "y": 5, 
    "x": 6, 
    "z": 5, 
    "size": 16 
    }, { 
    "product_id": 31, 
    "color": "#00ff00", 
    "text": "Size :24", 
    "y": 4, 
    "x": 5, 
    "z": 6, 
    "size": 24 
    }, { 
    "product_id": 32, 
    "color": "#FFa500", 
    "text": "Size :22", 
    "y": 5, 
    "x": 6, 
    "z": 6, 
    "size": 22 
    }, { 
    "product_id": 33, 
    "color": "#ff0000", 
    "text": "Size :12", 
    "y": 4, 
    "x": 0, 
    "z": 4, 
    "size": 12 
    }, { 
    "product_id": 34, 
    "color": "#ff0000", 
    "text": "Size :33", 
    "y": 0, 
    "x": 3, 
    "z": 1, 
    "size": 33 
    }, { 
    "product_id": 35, 
    "color": "#FFa500", 
    "text": "Size :16", 
    "y": 0, 
    "x": 0, 
    "z": 1, 
    "size": 16 
    }, { 
    "product_id": 36, 
    "color": "#00ff00", 
    "text": "Size :32", 
    "y": 2, 
    "x": 5, 
    "z": 2, 
    "size": 32 
    }, { 
    "product_id": 37, 
    "color": "#ff0000", 
    "text": "Size :27", 
    "y": 2, 
    "x": 6, 
    "z": 6, 
    "size": 27 
    }, { 
    "product_id": 38, 
    "color": "#FFFFFF", 
    "text": "Size :20", 
    "y": 3, 
    "x": 4, 
    "z": 0, 
    "size": 20 
    }, { 
    "product_id": 39, 
    "color": "#FFa500", 
    "text": "Size :27", 
    "y": 6, 
    "x": 0, 
    "z": 3, 
    "size": 27 
    }, { 
    "product_id": 40, 
    "color": "#FFFFFF", 
    "text": "Size :16", 
    "y": 1, 
    "x": 3, 
    "z": 3, 
    "size": 16 
    }, { 
    "product_id": 41, 
    "color": "#0000ff", 
    "text": "Size :29", 
    "y": 2, 
    "x": 2, 
    "z": 0, 
    "size": 29 
    }, { 
    "product_id": 42, 
    "color": "#ff69b4", 
    "text": "Size :23", 
    "y": 6, 
    "x": 2, 
    "z": 3, 
    "size": 23 
    }, { 
    "product_id": 43, 
    "color": "#00ff00", 
    "text": "Size :10", 
    "y": 3, 
    "x": 1, 
    "z": 5, 
    "size": 10 
    }, { 
    "product_id": 44, 
    "color": "#FFa500", 
    "text": "Size :35", 
    "y": 0, 
    "x": 2, 
    "z": 4, 
    "size": 35 
    }, { 
    "product_id": 45, 
    "color": "#FFFFFF", 
    "text": "Size :21", 
    "y": 3, 
    "x": 3, 
    "z": 6, 
    "size": 21 
    }, { 
    "product_id": 46, 
    "color": "#FFa500", 
    "text": "Size :32", 
    "y": 2, 
    "x": 0, 
    "z": 6, 
    "size": 32 
    }, { 
    "product_id": 47, 
    "color": "#ff0000", 
    "text": "Size :24", 
    "y": 5, 
    "x": 6, 
    "z": 3, 
    "size": 24 
    }, { 
    "product_id": 48, 
    "color": "#FFFFFF", 
    "text": "Size :30", 
    "y": 0, 
    "x": 1, 
    "z": 6, 
    "size": 30 
    }, { 
    "product_id": 49, 
    "color": "#ff69b4", 
    "text": "Size :33", 
    "y": 3, 
    "x": 5, 
    "z": 5, 
    "size": 33 
    }, { 
    "product_id": 50, 
    "color": "#ff0000", 
    "text": "Size :10", 
    "y": 1, 
    "x": 3, 
    "z": 1, 
    "size": 10 
    }] 

1) Это код, с помощью которого я создаю граф

$(document).ready(function(){ 
    trace = []; 
    data = [] 
    $.each(scatter_data, function(index, value){ 
       // console.log("here"+value); 
       index ++; 
       trace[index] = { 
        x : [value.x], 
        y: [value.y], 
        z:[value.z], 
        text:["Size: "+value.size], 
        mode : 'markers', 
        marker : { 
         color : [value.color], 
         size : [value.size], 
         symbol : 'circle', 
         line: { 
         color : 'rgb(204,204,204)', 
         width:1 
         }, 
         opacity:0.9, 
        }, 
        type: 'scatter3d', 
        name : 'category'+index, 
        title: 'title'+index 
       }; 
       console.log(trace[index]); 
       data.push(trace[index]); 
       }); 
       // var data = [trace[1],trace[2],trace[3]]; 
       var layout = {margin: { 
       l: 0, 
       r: 0, 
       b: 0, 
       t: 0 
       }, showlegend : true}; 
       Plotly.newPlot('plotly-div', data, layout, { modeBarButtonsToRemove: ['sendDataToCloud'], displaylogo : false }); 

       // There exist a event to click on the data point 
       // var graphDiv = document.getElementById('plotly-div') 
       // graphDiv.on('plotly_click', function(data){ 
       //  // do something using the event data 
       //  console.log(data); 
       // }); 

});

Теперь у меня есть форма, через которую я редактирую данные и получаю эти данные для обновления графика.

for(i=1;i<=50;i++){ 
    trace_no.push(i); 
    tempx.push($("#x-"+i).val()); 
    tempy.push($("#y-"+i).val()); 
    tempz.push($("#z-"+i).val()); 
    tempsize.push($("#size-"+i).val()); 
    tempcolor.push($("#rgb-combined-"+i).spectrum('get').toHexString()); 
    temptext.push("size : "+$("#size-"+i).val()); 
    } 


    var update = { 
     x : [tempx], 
     y : [tempy], 
     z : [tempz], 
     size : [tempsize], 
     'marker.color' : [tempcolor], 
     text : [temptext] 
    } 

Plotly.restyle('plotly-div', update, trace_no) 

График оленья кожа отражает изменения, а также все легенды получает окрашена в 1 определенного цвета

Заранее спасибо!

ответ

0

Итак, я наконец-то выяснил решение этой проблемы с помощью автора библиотеки.

Вот правильный синтаксис:

var update = { 
     x : [[1],[2],[3],[4],[5]], 
     y : [[1],[2],[3],[4],[5]], 
     z : [[1],[2],[3],[4],[5]], 
     size :[[12],[13],[14],[15],[16]], 
     'marker.color' : [["#001"],["#005"],["#0f0"],["#f00"],["#00f"]], 
     text : "size" 
    } 
    Plotly.restyle('myDiv', update, [0,1,2,3,4]); 

Каждый след должен быть предоставлен отдельный массив.

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