几周前我发布了一个类似的问题,但没有得到任何答案,因此我现在已经对其进行了简化,并且还有一个 jsfiddle 演示。
基本上我正在尝试将 jqplot 与 dateaxis 一起使用,并尝试通过更改输入数据来重新绘制图表。
这是jsfddle链接
http://jsfiddle.net/shympurk/JNTsv/2/
这是我的 javascript
$.jqplot.config.enablePlugins = true;
var Graph;
var GraphUpdate;
var GraphData = [];
var interval = 3000;
var npoints = 25;
var maxIterations = 200;
var niters = 0;
function BuildDataArray() {
GraphData = [];
;
GraphData = [[["2013-07-17 21:11:20",2],["2013-07-17 21:12:20",5],["2013-07-17 21:14:20",7]]];
Graph = $.jqplot('livechart', GraphData, {
stackseries : true,
seriesDefaults: {
showMarker: false,
fill: true,
fillAndStroke: true
},
axes: {
xaxis: {
//numberTicks:2,
//renderer:$.jqplot.DateAxisRenderer,
//pad:0,
renderer:$.jqplot.DateAxisRenderer,
tickOptions: {
angle: -30
}
},
yaxis: {
label: 'Call Count',
//min:0,
//max:30,
tickInterval:2,
labelRenderer: $.jqplot.CanvasAxisLabelRenderer
}
},
cursor:{
zoom:true,
looseZoom: true
}
});
}
function UpdateDataArray() {
var newData = new Array();
newData = GraphData;
newData[0].shift();
Graph.series[0].data = newData[0];
//Graph.data[0] = [["2013-07-17 21:12:20",5],["2013-07-17 21:14:20",7]] ;
Graph.replot({resetAxes:true});
}
function StartGraphLoop() {
BuildDataArray();
GraphUpdate = setInterval(UpdateGraph, interval);
}
function UpdateGraph() {
UpdateDataArray();
}
function StopGraphLoop() {
clearInterval(GraphUpdate);
}
StartGraphLoop();
我有一个 StartGraphLoop( ) 函数,它构建一个初始系列数据数组并绘制图形。它还激活了一个 setInterval 来更新系列数据并稍后重新绘制图表。
在我的情况下,重新绘制不起作用,并且 jqplot 在调用第一次重新绘制后变为空白。在 jsfiddle 示例中,初始绘图和重新绘图均不起作用,但轴已更新。
如果有人可以指导我正确使用 jqplot 和 dateaxisrendered with replot,我将不胜感激
谢谢