我想绘制一个每月只有一个数据点的图表。我将其作为在每个月的第一天发送给jqPlot的单个点:
$.jqplot('actualChart', [[['2011-10-01',0.296],['2011-11-01',0.682]]], {
title: programSelection.options[programSelection.selectedIndex].text,
axes: {
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
rendererOptions: { tickRenderer: $.jqplot.CanvasAxisTickRenderer },
tickOptions: { formatString: '%b' }
}
}
}
我正在使用Ajax加载图表数据。一些数据集的数据点比其他数据集更多 - 在上面的例子中只有2个点,x轴刻度('%b'表示仅显示为Oct和Nov)会自动沿着轴渲染,但太频繁了,例如Sep...Oct...Oct...Oct...Oct...Nov - 在所示线的规则点上。我只想在十月初和十一月初有一个单独的刻度。
我花了很多时间搜索,好像tickInterval就是为此而设计的,但添加
tickInterval: '1 month'
只是使x轴、数据点和线条消失了 - 这就是我所指的损坏功能! 指定任何其他间隔,例如。
tickInterval: '2 days'
也会破坏它。
一个解决方法是手动提供引号,例如:
ticks: ['2011-10-01','2011-11-01']
这确实将刻度放在了正确的位置,但是
a)这应该不是必须要做的麻烦事情,而且
b)失去了图表数据点两端漂亮的间距,因此两端的点出现在图表的边缘。当然,除非手动添加两侧的刻度,但在上面的十月至十一月示例中,我不想在两侧提供整个月,因为那么有趣的数据仅占图表的中间三分之一。
有人能帮帮我吗?提前感谢。
编辑-找到了解决方案:为轴提供min属性似乎可以解决这个问题(由于某种原因...有bug吗?),所以除非有更好的办法,否则我会这样做!