2

我正在使用 FLOT 图表库来绘制随时间消耗的卡路里。我希望 y 轴使用自动缩放(仅显示数据集中 +/- 最小值和最大值的值)。

但是,该图表始终使用 0 作为条形图的最小值,而不是自动缩放 y 轴值。这是我的代码:

function DrawCalorieChart(calorieData) {
    plot = $.plot($("#CalorieHistoryChart"), [calorieData],
    {
        series: {
            bars: { show: true, barWidth: 0.8, align: "center" }
        },
        legend: {
            show: false
        },
        xaxis: { tickDecimals: 0, tickSize: 1, mode: "categories", tickLength: 0 },
        yaxis: { autoscaleMargin: 0.025 },
        grid: { labelMargin: 10 }
    });
}

我可以手动设置最小值,但问题是我不知道输入新数据后最小值可能是多少。我尝试完全删除 yaxis 规范,设置 autoscaleMargin(如图所示)并将 min 设置为 null。但没有任何效果 - 最小值是静态值或零!任何帮助将不胜感激。

4

2 回答 2

3

目前没有办法在库自己的 API 中执行此操作。您需要编写一些 JS 来迭代您的值并手动找到最小值/最大值。这可以在您的绘图/重绘调用之外完成,也可以在 processRawData 挂钩中完成,如果您不断添加值和重绘,这可能会更好。

解决这个问题实际上是一个活跃的项目,我预计它将在未来 2-3 周内合并到 Github 主分支中。因此,取决于您是否能够等待并愿意使用不太稳定的代码,这是另一种选择。

于 2012-07-16T23:41:09.823 回答
0

实施DNS答案中提到的更改后的当前答案:

zero: falsebar选项中设置。

官方文档

无论数据的范围如何,面积图和条形图通常从零开始。这是因为它们通过大小传达信息,从不同的值开始会扭曲它们的含义。然而,在填充纯粹是为了装饰目的的情况下,“零”允许您覆盖此行为。对于填充的线条和条形,它默认为 true;将其设置为 false 告诉系列使用与未填充线相同的自动缩放。

于 2016-08-05T15:06:23.930 回答