我是jqplot的新手。今天我尝试刷新创建的行jqplot图表作为http://jsfiddle.net/fracu/HrZcj/的指导。
首先,我创建一个包含数据数组的jqplot图表,以下是代码片段:
var colors = ['red', 'blue', 'green'];
var dataset = [[232,234,235,556,233],[234,563,234,866,345],[234,564,567,345,234]];
var lengeds = [{label: 'Test'}, {label: 'Upper'}, {label: 'Lower'}];
var analysisLabels = [[1, "Label1"], [2, "Label2"], [3, "Label3"], [4, "Label4"], [5, "Label5"]];
chart = $.jqplot("chart_id",
dataset,
{
title: 'Sample Chart',
legend: {
show: true,
placement: 'outsideGrid'
},
series: lengeds,
axes: {
xaxis: {
ticks: analysisLabels,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
angle: -30
}
},
yaxis: {
label: 'Fuel',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer
}
},
seriesColors: colors,
highlighter: {
show: true
},
cursor: {
show: false
}
}
);
然后我打算用新创建的数据集刷新它:
chart.series[0].data = chartSeriesTimes[0];
chart.series[1].data = chartSeriesTimes[1];
chart.series[2].data = chartSeriesTimes[2];
//chart.resetAxesScale();
chart.replot();
图表在上面的代码运行后没有显示任何内容,换句话说,3个以前创建的曲线被删除但新添加的3个曲线数据集不会渲染。
我不知道为什么会发生这种情况,因为我遵循官方的例子。任何擅长jqplot的人都可以给我指导。非常感谢。
答案 0 :(得分:0)
我解决了这个问题,即使我不确定这种方式是否最好:在刷新之前将其销毁(如果存在的话)。
if (chart) {
chart.destroy();
}
答案 1 :(得分:0)
您是否需要使用方括号[]来放置数据集?
chart = $.jqplot("chart_id",
[dataset],
{
title: 'Sample Chart',
legend: {
show: true,
placement: 'outsideGrid'
},
series: lengeds,
axes: {
xaxis: {
ticks: analysisLabels,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
angle: -30
}
},
yaxis: {
label: 'Fuel',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer
}
},
seriesColors: colors,
highlighter: {
show: true
},
cursor: {
show: false
}
}
答案 2 :(得分:0)
if (chart) {
chart.replot();
}