FLOT中的主要和次要刻度

时间:2014-08-27 07:02:02

标签: javascript plot flot

一些图表/绘图库,例如matplotlib for Python,具有主要和次要刻度的概念(具有相应的主要和次要网格线)。我一直在四处寻找,我认为这在FLOT中不存在。似乎只有一类蜱。

是不是可以制作类似下面的内容,如果是,那么如何?

,如下图所示,每1.0的主要滴答,每0.2的次要滴答。

enter image description here

2 个答案:

答案 0 :(得分:5)

你是正确的flot本身不支持这个。

要复制你的绘图,我会使用grid markings并在每个整数标记处添加一条更粗的行:

   $.plot("#placeholder", [ d1 ], {
      xaxis: {
       tickSize: 0.2 // regular tick at 0.2
      },
      grid: {
       markings: function (axes) {
        var markings = [];
        var xTicks = axes.xaxis.ticks;
        for (var i = 0; i < xTicks.length; i++){ // loop all the ticks and add a black line at each whole number
          if (xTicks[i].v % 1 === 0){
            markings.push({ xaxis: { from: xTicks[i].v - 0.005, to: xTicks[i].v + 0.005 }, color: 'black' });
          }
        }
        return markings;
    }
  }
});

制作(例如here):

enter image description here

答案 1 :(得分:0)

如果有人想在未成年人标记部门中添加自己的未标记次要标记,则可以执行此操作。 (默认的小刻度为5,不能轻易被忽略) 我的数据是基于时间的,显示每三个月用标记标记两年。

xaxis: {
mode: "time",
    timeformat: "%b %Y",
    minTickSize: [3, "month"],
    showMinorTicks:false,
},
grid: {
markings: function (axes) {
    var markings = [];
    var month_time= 2629700; // year in seconds divided by 12
    var offset=0;
    var linespread=36000; // set line thickness
    var xTicks = axes.xaxis.ticks;
    for (var i = 0; i < xTicks.length; i++){ 
        // loop all the ticks and add a dark line at each main group 
        markings.push({ xaxis: { from: xTicks[i].v  - linespread, to: xTicks[i].v  + linespread }, color: '#aaa' });
        for (var k = 1; k < 3; k++){
            //use subdvision to add minor ticks
            offset=month_time*k;
            markings.push({ xaxis: { from: xTicks[i].v + offset - linespread, to: xTicks[i].v + offset + linespread }, color: '#ddf' });
        }
    }
    return markings;
}

}