是否可以将新系列动态添加到现有 jqPlot 对象?
我有一个 jqPlot 对象,它使用 AJAX 数据渲染器来检索 2 系列。这部分工作正常。
根据用户输入(和几个参数),我希望能够在图表中动态添加或删除其他系列(同时保留两个原始系列)。
这可能吗?是否可以不必再次检索原始两行的未更改数据?
或者,如果这是不可能的,是否有任何关于可以做到这一点的不同图表库的建议?
是否可以将新系列动态添加到现有 jqPlot 对象?
我有一个 jqPlot 对象,它使用 AJAX 数据渲染器来检索 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
});
}