jQuery flot chart - 更改y轴的标签(刻度)

Mel*_*dis 5 javascript jquery flot

我需要能够根据另一个充满标签的数组来更改(水平)条形图的标签/刻度. - 这是名称解析器的一部分.

所以我的初始化代码看起来如此:

var ticks = [["abc", 0], ["def", 1], ["ghi", 2], ["jkl", 3]];

//loop for each value goes here
var data = {
    data: [[0, 111]], //[1, 222], [2, 333], [3, 444]... etc
    bars: {
        horizontal: true,
        show: true,
        barWidth: 0.8,
        align: "center"
    }
};

var plot = $.plot($("#graph"), data, {
    yaxis: {
        ticks: ticks
    }
    //etc
});
Run Code Online (Sandbox Code Playgroud)

有没有办法更新条形图而不破坏旧图,然后创建一个新图? - 这样的事情?:

//New ticks for y-axis
plot.yaxisticks = [["ABC", 0], ["DEF", 1], ["GHI", 2], ["JKL", 3]];
plot.draw();
Run Code Online (Sandbox Code Playgroud)

编辑:
所以我可以设置值,plot.getOptions().yaxis.ticks[i][1] = value但似乎它不能重新绘制滴答使用plot.setupGrid().救命?

Mel*_*dis 1

可以通过 更改标签plot.getAxes().yaxis.options.ticks,然后重新绘制绘图。

function test() {
    var ticks = plot.getAxes().yaxis.options.ticks;

    for (var i = 0; i < ticks.length; i++ ){
        ticks[i][1] += " test";
    }

    plot.setupGrid();
    plot.draw();
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将在标签末尾添加“test”。