在jqplot中,为什么条形图上的自动缩放与在线图表上有很大差异?
使用完全相同的数据,我得到了这两个图:
我用于两个图的选项是:
var bar_options = {
axesDefaults: { labelRenderer: $.jqplot.CanvasAxisLabelRenderer },
seriesDefaults: { renderer: $.jqplot.BarRenderer, rendererOptions: { highlightMouseOver:false, barMargin:5, shadowOffset:1 } },
axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer }, yaxis: { tickOptions:{show:false} } },
};
和
var line_options = {
axesDefaults: { labelRenderer: $.jqplot.CanvasAxisLabelRenderer },
seriesDefaults: { rendererOptions: { smooth: true } },
axes: { xaxis: { min:1, max:30, tickInterval:1, pad:0 }, yaxis: { tickOptions:{show:false} } },
};
线条图看起来非常好,但条形图旁边没有显示缩放图。
为什么两个图之间的默认缩放比例如此不同,如何使条形图上的缩放与折线图相同?
编辑:
我创建了一个更简单的示例,数据如下:
[38.23, 39.33, 41.67, 40.21, 45.01, 44.47, 37.04]
显示的结果图如下:
添加y轴刻度,表示数据从0开始。
我将我的情节代码改为此......
var home_bar_options = {
axesDefaults: { labelRenderer: $.jqplot.CanvasAxisLabelRenderer },
seriesDefaults: { renderer: $.jqplot.BarRenderer, rendererOptions: { highlightMouseOver:false, barMargin:5, shadowOffset:1 } },
axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer }, yaxis: { min:30, max:50 } }
};
但情节并没有改变,完全忽略了“最小”的情况。和' max'我为y轴刻度输入的值。
为什么会这样?
答案 0 :(得分:0)
我没有找到任何适当的'在条形图上移动轴的方法,但我设法找到了一种解决方法。
我的页面是PHP格式,数据来自mysql数据库。
所以,在我获得数据之后,在绘制条形图之前,我得到最小数据值,并从我的所有数据中减去该值!
所以,如果我的数据是
35, 38, 36, 42, 40
我从所有数据中减去35,得到一个新的数据集
0, 3, 1, 7, 5
条形图然后会以更好看的方式绘制它!
因为我不需要查看实际的数据,只有趋势,这对我来说没问题 - 但是如果你需要一个带刻度的y轴,它将不起作用。
如果有人有正确的'如何正确调整条形图y轴远离零,那么我会很高兴听到它!
但是,现在,我的解决方法就足够了!