首页 文章

jqplot条形图上的y轴刻度

提问于
浏览
0

在jqplot中,为什么条形图上的自动缩放与在线图表上有很大不同?

使用完全相同的数据,我得到这两个图:

enter image description here

enter image description here

我用于这两个图的选项是:

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]

结果图显示如下:

enter image description here

添加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 回答

  • 0

    我没有找到任何'正确'的方法来移动条形图上的轴,但我已设法找到一个解决方法 .

    我的页面是PHP,数据来自mysql数据库 .

    因此,在我获得数据之后,在绘制条形图之前,我得到最小数据值,并从我的所有数据中减去该值!

    所以如果我的数据是

    35, 38, 36, 42, 40
    

    我从所有数据中减去35,得到一个新的数据集

    0, 3, 1, 7, 5
    

    然后条形图将以更好看的方式绘制它!

    因为我不需要查看实际的数据,只需要看趋势,这对我来说没问题 - 但是如果你需要一个带有刻度的y轴,它将不起作用 .

    如果有人有'正确'的方法来正确调整条形图y轴远离零,那么我会很高兴听到它!

    但是,就目前而言,我的解决方案就足够了!

相关问题