Javscript Plotly error: «вызывается плотно, как будто перерисовывается, но у этого контейнера еще нет графика» - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь построить другую диаграмму p ie на основе выбора пользователя в раскрывающемся списке. Console.log выводит правильную информацию, но область построения выдает ошибку: «Вызов Plotly.plot как будто перерисовывается, но у этого контейнера еще нет графика». Ниже приведен мой код (извините, он немного длинный), но я постараюсь обобщить проблему, с которой я столкнулся.

function nameChanged(){
    var selected_month = d3.select('#selMonth').property('value');
    var selected_researcher = d3.select('#selName').property('value');     
    var proj_name = []
    var proj_hrs = []
    d3.json('mar_byweek.json').then((data)=>{ 

    if ((selected_month ==="march")&& (selected_researcher ==='amber')
        //some other code here to do something, which works //
        d3.json('marAmber_byprod.json').then((data) =>{
            proj_name = data.map(row => row.Product);
            proj_hrs = data.map(row =>row.Total);
            console.log(proj_name, proj_hrs)
        })};

    if ((selected_month ==="march")&& (selected_researcher ==='gwen')) {
        //some other code here to do something, which works//

        d3.json('marGwen_byprod.json').then((data) =>{
            proj_name = data.map(row => row.Product);
            proj_hrs = data.map(row =>row.Total);
            console.log(proj_name, proj_hrs)
        })};

        var trace_project = {
            labels: [proj_name],
            values: [proj_hrs],
            type: "pie",
        }
        Plotly.newPlot('month_pie', trace_project)
    }) 

Для КАЖДОГО условия «если» в console.log отображаются правильные массивы «proj_name» и «proj_hrs». Но при построении графика ошибка показывает «Вызов Plotly.plot, как если бы он перерисовывался, но у этого контейнера еще нет графика».

Пожалуйста, помогите! Глубоко ценится !!!

1 Ответ

0 голосов
/ 06 апреля 2020

Я решил это, поместив Plotly.newPlot внутри каждого условия if. Я надеюсь, что есть более простой способ, чем повторять его три раза, но это то, что сделал это для меня. Если у кого-то есть лучший способ сделать это, я был бы признателен.

...