jqPlot:可以动态添加新系列吗?

时间:2013-05-19 22:01:31

标签: javascript charts jqplot

是否可以动态地将新系列添加到现有的jqPlot对象中?

我有一个jqPlot对象,它使用AJAX数据渲染器来检索2个系列。这部分工作正常。

根据用户输入(和几个参数),我希望能够动态地添加或删除图表中的其他系列(同时保留两个原始系列)。

这可能吗?是否可以不必再次检索原始两行的未更改数据?

或者,如果无法做到这一点,是否有针对不同图表库的建议?

1 个答案:

答案 0 :(得分:2)

是的,我刚刚发现了如何做到这一点,我找到了你的问题,但没有答案,所以我会提供我的。现在,这可能不是最优雅的方式,但它确实有效。

$(document).ready( function () {

    DataSeriesToPlot = [[[x1_1,y1_1],[x1_2,y1_2]],[[x2_1,y2_1],[x2_2,y2_2]],
    [[x3_1,y3_1], [x3_2,y3_2]]];
    AxesOptions = {
        xaxis: {min: xmin, max: xmax},
        yaxis: {min: ymin}
    };
    PlotTitle = 'PlotTitle',
    PlotSeriesDefaults = {
        showMarker: false,
        shadow: false,
        rendererOptions: {
            smooth: true
        }
    };
    PlotLegend = {
        show: true,
        labels: ['label1','label2','label3']
    };
    PlotSeriesOptions = [
        {
            linePattern: 'dashed',
            color: '#f80202',
        },
        {
            linePattern: 'dashed',
            color: '#f80202',
        },
        {
            color: '#f80202',
        }
    ];

    PlotVar = $.jqplot('Plotdiv', DataSeriesToPlot,
    {
        axes: AxesOptions,
        title: PlotTitle,
        seriesDefaults: PlotSeriesDefaults,
        series: PlotSeriesOptions,
        legend: PlotLegend  
    });

AddToPlot();

});

function AddToPlot(){

    $("Plotdiv").empty();
    DataSeriesToPlot.push([[x4_1,y4_1],[x4_2,y4_2]]);
    PlotLegend.labels.push('label4');
    PlotSeriesOptions.push({
        linePattern: 'dashed',
        color: '#ff6600',
    });

    PlotVar = $.jqplot('Plotdiv', DataSeriesToPlot,
    {
        axes: AxesOptions,
        title: PlotTitle,
        seriesDefaults: PlotSeriesDefaults,
        series: PlotSeriesOptions,
        legend: PlotLegend  
    });
}
相关问题