Flot:显示最小刻度数

Bla*_*umb 2 javascript jquery flot

使用浮点图,我想指定在 y 轴上显示的最小刻度数。就我而言,我希望始终显示至少 10 个刻度(值 1-10),但如果我的 y 轴最大值超过 10,那么我希望 flot 使用正常刻度算法绘制图表。我目前通过为刻度参数指定一个函数来实现它的工作。

ticks: function(axis){
           var ticks = [];
           if(axis.max < 10){
                ticks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
           }
           else{
             for(var i = 1; i < axis.max; i++){
                 ticks.push(i);
             }
           }
           return ticks;
}, 
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,当 大于 10 时,我得到的刻度数比我想要的多得多。axis.max有没有办法避免这种情况?

我原本以为我可以返回 null,但 flot 期望返回一个数组。:(

Sat*_*jit 5

如果您想要刻度生成的默认功能,您可以调用tickGenerator轴的函数。它比使用您不维护的代码要干净得多。所以对于你的情况,你可以这样做:

ticks: function(axis){
   return axis.max < 10 ? [1,2,3,4,5,6,7,8,9,10] : axis.tickGenerator(axis); 
}
Run Code Online (Sandbox Code Playgroud)