jqplot 无法使用日期轴渲染器正确缩放

标签 jqplot zooming

我正在使用 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/

相关文章:

javascript - 在 jqplot 饼图工具提示中显示百分比

javascript - jqPlot 的 JSON

jqplot - 在 jqplot 中打开和关闭 pointLabels

Android getWidth、getHeight、getLeft、getRight 在 setScaleX()、setScaleY() 之后不正确

jquery - 如何淡入 jQuery 中已经可见的对象?

zooming - Munin 变焦功能不起作用

javascript - jquery 鼠标滚轮缩放(改变 div 的宽度)

javascript - jqplot 在图上标记一个点

css - 如何在放大或缩小页面时阻止 DIVS 移动?

jquery - JQPlot 折线图上的自定义工具提示