在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 } }
};
但是情节不会改变,并且完全忽略了我为y轴刻度输入的'min'和'max'值 .
为什么是这样?
1 回答
我没有找到任何'正确'的方法来移动条形图上的轴,但我已设法找到一个解决方法 .
我的页面是PHP,数据来自mysql数据库 .
因此,在我获得数据之后,在绘制条形图之前,我得到最小数据值,并从我的所有数据中减去该值!
所以如果我的数据是
我从所有数据中减去35,得到一个新的数据集
然后条形图将以更好看的方式绘制它!
因为我不需要查看实际的数据,只需要看趋势,这对我来说没问题 - 但是如果你需要一个带有刻度的y轴,它将不起作用 .
如果有人有'正确'的方法来正确调整条形图y轴远离零,那么我会很高兴听到它!
但是,就目前而言,我的解决方案就足够了!