如何在Flotr2多轴图中提供Y-2轴标签与Y-2轴标题之间的空间

时间:2013-09-17 22:40:18

标签: javascript css flotr2

我正在使用Flotr2创建多轴图表..

这是Flotr2多轴图表图像: enter image description here

在右侧的多轴图表中,Axis Labels和TITLE重叠..

我需要如何在Axis Labels和TITLE之间提供一些空间以便于阅读。

我正在添加此多轴Flotr2图表网址的引用:http://www.humblesoftware.com/flotr2/#!advanced-titles

任何人都可以帮助我..

3 个答案:

答案 0 :(得分:1)

这是一个错误,如下所示: https://github.com/HumbleSoftware/Flotr2/issues/151

对我来说,一个好的解决方法是在页面html中放入一个图像右上角的轴标题图像。

答案 1 :(得分:0)

您可以尝试更改网格对象中的labelMargin。

  grid : {
    verticalLines : false,
    backgroundColor : 'white',
    labelMargin: 20
  },

似乎有点帮助,但它会影响所有标签。

答案 2 :(得分:0)

好的,现在忍受这个bug。 在刻度标签上添加空格(数字)可以为轴标签腾出空间。

function addSpace(v,axis) {
 return Flotr.defaultTickFormatter(v,axis)+"   ";
}

...

y2axis: title:"Leistung (W)", tickFormatter:addSpace,

三个空格(0x20)对我来说已经足够了。

后来我发现,恕我直言,ist是内部getBestTextAlign成员函数中的一个错误。当我删除两个模糊的角度相关对齐调整时,一切正常:

  getBestTextAlign: function(angle, style) {
    style = style || {textAlign: 'center', textBaseline: 'middle'};
    angle += Flotr.getTextAngleFromAlign(style);

//    if (Math.abs(Math.cos(angle)) > 10e-3) 
//      style.textAlign    = (Math.cos(angle) > 0 ? 'right' : 'left');

//    if (Math.abs(Math.sin(angle)) > 10e-3) 
//      style.textBaseline = (Math.sin(angle) > 0 ? 'top' : 'bottom');

    return style;
  },

我不知道这段代码背后的想法是什么。它根本没有评论。对不起,没有好的编码习惯。