我试图每月绘制一个包含单个数据点的图表。我会在每个月的第一天将其作为一个点发送到 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”表示仅显示为 10 月和 11 月)沿轴自动渲染,但过于频繁,例如9 月...10 月...10 月...10 月...10 月...11 月 - 沿所示线的常规点。我只想要十月初的一个刻度,十一月初的另一个刻度。
我花了很多时间搜索,似乎tickInterval是为此而设计的,但是添加
tickInterval: '1 month'
只是使 x 轴、数据点和线条消失 - 这是我指的损坏的功能!指定任何其他间隔,例如
tickInterval: '2 days'
也打破了它。
解决方法是手动提供刻度,例如
ticks: ['2011-10-01','2011-11-01']
This does把勾号放在正确的位置,但是
a) 是一个不应该被要求的麻烦,并且
b) 失去图形数据点两端的良好填充,因此两端的点出现在图形的边缘上。当然,除非在两侧添加手动刻度,但在上面的 10 月至 11 月示例中,我不想在两侧提供整个月,因为这样有趣的数据仅占据图表的中间三分之一。
谁能帮我这个?提前致谢。
编辑-找到了解决方案:提供一个min轴的属性似乎确实解决了这个问题(无论出于何种原因......错误?),所以除非有人有更好的想法,否则我会这样做!