reuse jqplot object to load or replot data

前端 未结 5 1167
别那么骄傲
别那么骄傲 2020-12-31 07:08

I am using JqPlot for charts , my problem is i want to load different data on different click events.

But once the chart is created and loaded with the data for the

5条回答
  •  被撕碎了的回忆
    2020-12-31 07:44

    Though this is an old question.

    As the accepted Answer didn't work for me and i couldn't find a solution in the jqPlot docs either. I came to this solution

    var series = [[1,2],[2,3]];
    chartObj.replot({data:series});
    

    Src: Taking a look at the replot function.

    function (am) {
        var an = am || {};
        var ap = an.data || null;
        var al = (an.clear === false) ? false : true;
        var ao = an.resetAxes || false;
        delete an.data;
        delete an.clear;
        delete an.resetAxes;
        this.target.trigger("jqplotPreReplot");
        if (al) {
            this.destroy()
        }
        if (ap || !L.isEmptyObject(an)) {
            this.reInitialize(ap, an)
        } else {
            this.quickInit()
        } if (ao) {
            this.resetAxesScale(ao, an.axes)
        }
        this.draw();
        this.target.trigger("jqplotPostReplot")
    }
    

    The line if (ap || !L.isEmptyObject(an)) { this.reInitialize(ap, an) }
    shows us it needs a truthy value for ap to pass it as first parameter to the internal reinitialize function. which is defined as var ap = an.data || null;

    Its as simple as this but unfortunately not documented anywhere i could find it


    Note that if you want to redraw some things defined in your jqPlot options, like legend labels, you can just pass any option to the replot function. Just remember the actual series to replot has to be named "data"

    var options = {
         series : [{
                label: 'Replotted Series',
                linePattern: 'dashed'
         }],
       //^^^ The options for the plot
         data : [[1,2],[2,3]]
       //^^^ The actual series which should get reploted
    }
    chartObj.replot (options)
    

提交回复
热议问题