如何在 Flot 中呈现图表后设置值


How to set values after chart is rendered in Flot?

我目前正在使用Flop在我的网站上显示图表。它是一个包含一系列数据的图表,x 轴设置为时间模式。现在我有一些按钮可以更改视野范围("显示全部"、"显示过去六个月"、"显示去年"等),但我不知道如何在不覆盖当前情节的情况下更改特定属性。目前我这样做:

$("#six-months-scope").click(function () {
    $.plot("#fd-weight-graph", data, {
        xaxis: {
            mode: "time",
            min: <?php echo $newestEntry . " - 15552000000" ?>,
            max: <?php echo $newestEntry ?>
        }
    });
});

但是如果我这样做,我还必须设置每个选项(例如设置颜色、线条、点等),我认为这是一个低效的解决方案。我只想更改最小值和最大值属性。

此外,如果我将 min 和 max 属性设置为轴,则图表不会从我设置的日期开始,而是在我设置的日期之前和之后结束。 $newestEntry是数据系列中最新条目的日期,我希望它的位置粘在图表的右端。我希望你明白我的意思。

任何建议不胜感激。

要使用新数据和新轴最小值/最大值进行更新,然后重新绘制图表,我这样做:

 // somePlot is flot plot object saved from your initial $.plot call
 somePlot.setData(newData);
 somePlot.getOptions().xaxes[0].min = newMin;
 somePlot.getOptions().xaxes[0].max = newMax;
 somePlot.setupGrid();
 somePlot.draw();