我正在使用 jqPlot(版本 1.0.2,我相信——7/25/12 版本)来渲染一天的太阳能生产值(value),以获得各种值(value)。当我放大一天的一部分时,经常会呈现图表的错误区域。
这是情节选项-
var plotOptions = {
series: [{ showMarker:false} ],
axes: {
xaxis:{
renderer:jQuery.jqplot.DateAxisRenderer,
tickOptions:{
formatString:'%R'
},
min: data[0].time * 1000,
max: data[data.length - 1].time * 1000
},
yaxis: {
tickOptions: {
formatString: '%.3f'
}
}
},
highlighter: {
show : true,
sizeAdjust: 7.5
},
cursor: {
show : true,
zoom: true,
showToolTip: false
}
};
数据是整个电气系统的 1 分钟样本,当前默认值为一个相腿上的交流电流(标准北美电气系统 - 120/240 伏交流电源)。通常有 1,440 个样本,一天中的每一分钟一个。
我看到的情况是我会选择一个区域,通常是 4 或 6 个小时,并且数据的错误部分被放大了。例如,如果我选择午夜到上午 8 点,我会看到上午 4 点到上午 8 点(或者可能是上午 9 点,如果我放大到上午 8 点多一点)被放大了。这是相当一致的——显示范围的后半部分——但我也看到了一些没有押韵或理由的情况,这些值可能被放大得如此之近,以至于我无法分辨是什么。
我试图从示例中大量窃取,但无济于事。我也试过限制我的数据集的大小,但这似乎没有多大帮助。
更新:我尝试从使用原始时间戳切换到使用 Date() 对象,但无济于事......
最佳答案
我遇到了同样的问题。我无法切换到 Flot,尽管它也是一个很好的包。我做了一些挖掘,发现 this post在有答案的 jqplot-users 谷歌组上。
这是简短的回答。 src\plugins\jqplot.dateAxisRenderer.js 中有一个错误。该帖子说解决方法是在 dataAxisRenderer.js 文件中注释掉以下内容
min = new $.jsDate(min);
min = min.getTime() + min.getUtcOffset();
但是,我不确定
min = new $.jsDate(min);
min = min.getTime();
是否有必要,删除它可能是一个坏主意。我没有注意到任何问题,但我认为我们可以保留这些行并删除
min.getUtcOffset()
.
关于jqplot 无法使用日期轴渲染器正确缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11813457/