绘图绘制额外的垂直网格线

时间:2013-05-27 14:52:43

标签: flot

我无法摆脱图表末尾的垂直线。

我在这里复制了问题: http://jsfiddle.net/63BPw/4/

网格线的颜色是黑暗,它只在js代码的这一部分设置:

grid: {
    aboveData: false,
    hoverable: true,
    clickable: true,
    color: "darkred",
    borderWidth: {
        top: 0,
        bottom: 1,
        left: 0,
        right: 0
    }
}

控制台不会抛出任何错误。我不使用javascript文件或外部css文件中的任何边距。

1 个答案:

答案 0 :(得分:3)

我认为这可能是一个错误。

问题不在于网格设置,而是在每个轴的绘图中。具体来说,您设置2个y轴,一个在左侧,一个在右侧。在flot代码的深处,它决定是否根据轴是否是“最内层”来绘制“条形”以附加刻度线。如果您有2个yaxes,则会错误地判断您的右侧yaxis 最里面,因此绘制一个刻度线。

相关代码,每个轴都调用两个位:

allocateAxisBoxFirstPhase

/*note this is only called for axes that have tickLength set
  but later it is checked as true/false, not undefined 
  (which is what you'd get if you set your yaxis tickLength = 0) */
var sameDirection = $.grep(all, function (a) {
  return a && a.reserveSpace;
});

innermost = $.inArray(axis, sameDirection) == 0;

drawGrid

if (!axis.innermost) {

   //in here it draws the tick bar

}

解决方法

找到!axis.innermost位并将其更改为axis.innermost == false。在第二个yaxis中设置tickLength = 0。就是这样。

我在这里实施了这两项更改:http://jsfiddle.net/63BPw/5/

此外,仅供参考我提出了一个错误:https://github.com/flot/flot/issues/1056