0

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

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

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

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

或者,如果这是不可能的,是否有任何关于可以做到这一点的不同图表库的建议?

4

1 回答 1

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  
    });
}
于 2013-07-23T19:19:35.860 回答