在绘图区域和左边填充内的高位图yAxis标签

时间:2015-01-21 11:31:34

标签: highcharts

我有一个柱形图,在绘图区域内有yAxis标签。 DEMO:http://jsfiddle.net/o4abatfo/

这就是我设置标签的方式:

yAxis: {
  labels: {
    align: 'left',
    x: 5,
    y: -3
  }
}

问题是最左边的列是如此靠近绘图区域边缘,标签与它重叠。有没有办法调整绘图区域填充,以便列在右边开始进一步?

Chart example

3 个答案:

答案 0 :(得分:0)

您可以将min值设置为-0.49。

http://jsfiddle.net/o4abatfo/2/

答案 1 :(得分:0)

一种可能的解决方案:

将标签保留在外面,并将plotBackgroundColor应用为图表backgroundColor

这意味着图例也将被包裹在背景颜色中,但同样,它也是选项。

示例:

答案 2 :(得分:0)

我问了同样的事情in the Highcharts forum并得到了这个解决方案作为@paweł-fus的回复:

var chartExtraMargin = 30;

Highcharts.wrap(Highcharts.Axis.prototype, 'setAxisSize', function (p) {
  p.call(this);
  if (this.isXAxis) {
    this.left += chartExtraMargin;
    this.width -= chartExtraMargin;

    this.len = Math.max(this.horiz ? this.width : this.height, 0);
    this.pos = this.horiz ? this.left : this.top;  
  }
});

但是,添加此项会使工具提示出现在错误的位置。通过覆盖Tooltip.prototype.getAnchor()方法并在x坐标中添加额外边距来修复此问题:

Highcharts.wrap(Highcharts.Tooltip.prototype, 'getAnchor', function(p, points, mouseEvent) {
  var anchor = p.call(this, points, mouseEvent);
  anchor[0] += chartExtraMargin;
  return anchor;
});