使用dateAxisRenderer的jqPlot tick不匹配

时间:2013-11-21 16:03:28

标签: javascript php jquery graph jqplot

对于我的生活,我无法弄清楚使用dateAxisRenderer在我的x轴上关闭滴答声的问题。这仅发生在超过1个月的范围内。我手动设置最小值和最大值,所有日期数据都来自php的Y-m-d格式。我尝试了所有可以找到的东西来强制图形的开头和结尾处的刻度线,并避免图形中间的不匹配。我附上了一个截图,展示了这个问题。我还在dateAxisRenderer中添加了对daysInMonths数组(错误数字)的修复,但该变量似乎不会在任何地方使用。

注意: js中显示的数据只是为了演示结构,一个真实的集合也无法发布。

照片:

在上图中,在月份的变化中,发生不匹配。 10月29日的标签上有第30个点和数据。正在运行console.log(targetPlot.axes.xaxis.max)总是返回我的最大+ 1天的js纪元,即使我的最大值是明确设置的。

我的代码:

var graphData = {"object1":[["2013-01-01", 0], ["2013-01-02", 0]], "object2":[["2013-01-01", 0], ["2013-01-02", 0]]};
var time = '%#d-%b-%y';
var min = '2013-10-23';
var max = '2013-11-21';
var toPlot = [graphData.object1, graphData.object2];
$.jqplot.enablePlugins = true;
window.targetPlot = $.jqplot('chart-main', toPlot, {
animate: true,
animateReplot: true,
seriesDefaults: {
    showMarker: false,
    pointLabels: { show: false },
    markerOptions: {
        show: true,
        style: 'filledCircle',
       size: 7
    }
},
seriesColors: colours,
cursor: {
    show: true,
    showTooltip: false
},
series: [
    {
        showMarker: true,
        lineWidth: 2,
        rendererOptions: {
            animation: {
                speed: 1500
            }
        }
    },
{
        showMarker: true,
    lineWidth: 2,
    yaxis: 'y2axis',
    rendererOptions: {
        animation: {
            speed: 1750
        }
    }
}               
],
axesDefaults: {
    useSeriesColor: true,
    rendererOptions: {
        alignTicks: true,
        tickDistribution: 'even'
    }
},
axes: {
    xaxis: {
    renderer: $.jqplot.DateAxisRenderer,
        tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
    tickOptions: {
        angle: -65,
        fontSize: '8pt',
    formatString: time
        },
    min: min,
        max: max
    },
    yaxis: {
    tickOptions: {
        fontSize: '8pt'
    },
    min: 0,
    pad: 0
},
    y2axis: {
        tickOptions: {
            fontSize: '8pt'
        },
        min: 0,
        pad: 0
    }
}
});

由于

1 个答案:

答案 0 :(得分:1)

修改部件后,在超过1个月的某些数据集上会出现错误,并自动生成这些月份的刻度。每个月的天数都是错误的,并且在dateAxisRenderer中使用不正确。该错误已经以另一种方式报告(以不同的方式)。

为了避免在下次更新文件时记得更新我的dateAxisRenderer,我现在定义我的刻度(后退)并且不包括dateAxisRenderer。