我正在使用 jqPlot 来说明一些时间序列数据。同时,我有一个下拉菜单,用于控制 x 轴(时间轴)的刻度间隔。滴答间隔可以动态更改,但最后一个滴答始终超出范围。
比如我的x轴上界是Dec 1 1961
,开始日期是Jan 2 1961
,时间间隔是3 month
。然后轴上的最后一个刻度是Jan 2 1962
,而不是实际的上限。所以我的问题是如何使刻度间隔仅在 x 轴边界内工作(比如在外推之前与上限进行比较)。谢谢!
这是我的情节的演示。
试着更好地解释一下自己。
- x 轴上的最后一个数字应该是数组 x_date2[300] 的最后一个元素。如果第一个日期 x_date[0] 和最后一个日期之间的差异可以除以刻度间隔的值,那么一切都很好。
- 如果不是,除了作为上限的最后一个元素外,其他刻度之间的间隔应由下拉刻度间隔选择控制。
JS:
var x_water = [data are available on JSFIDDLE]
var x_date2 = [data are available on JSFIDDLE]
var x_date2_len = x_date2.length;
var paired = [];
for (var i = 0; i <= x_date2_len; i += 1) {
paired.push([x_date2[i], x_water[i]]);
}
$('#calc1').click(function (range_interval) {
var range_interval = $("#display_interval_1").val();
createplot1(range_interval);
});
function createplot1(range_interval) {
$.jqplot.config.enablePlugins = true;
$('#chart1').empty();
$.jqplot('chart1', [paired], {
seriesDefaults: {
showMarker: false,
pointLabels: {
show: false
}
},
series: [{
label: 'Water Concentrations'
}],
axes: {
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
formatString: '%#m/%#d/%Y',
angle: -30
},
min: x_date2[0],
max: x_date2[300],
tickInterval: range_interval,
label: 'Date',
pad: 0
},
yaxis: {
label: 'Water Total (μg/L)',
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
pad: 0
}
},
legend: {
show: true,
location: 'nw',
placement: 'inside',
fontSize: '11px'
}
})
}