如何使用Highcharts将x轴标签沿y = 0线定位?

时间:2016-06-29 01:51:13

标签: javascript highcharts

我正在尝试移动x轴标签,使它们沿x = 0行显示。刻度不断变化,因此我不想使用像素设置位置,因为y = 0可能不在每个绘图的相同位置。

我尝试在这个网站上查找这个问题,有人建议使用“crossing:0”,如下所示,但这不起作用。

xAxis: {
  min: -20,
  max: 20,
  tickInterval: 1,
   gridLineWidth: 1,
    endOnTick: false,
     crossing:0,
    title: {
        text: 'some value', 
    },

如果有人能帮我解决这个问题,我将不胜感激。

这是我的JsFiddle:http://jsfiddle.net/z7eyv/35/

1 个答案:

答案 0 :(得分:3)

crossing不是Highcharts的开箱即用功能。

根据我能找到的东西,你想要的似乎是"交叉特定价值" Highcharts插件,位于:http://www.highcharts.com/plugin-registry/single/6/Crossing-Specific-Values

更新(2016年7月5日):要解决有关您的小提琴的评论,您需要明确添加"交叉特定值"在你进入Highcharts图书馆之后的插件(见下面的第三行):

<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<script src="https://rawgithub.com/highslide-software/crossing-specific-value/master/crossing-specific-value.js"></script>

现在,将crossing变量添加到x轴将显示演示中的标签。

我对你的小提琴进行了一些调整(见http://jsfiddle.net/brightmatrix/z7eyv/38/),以便更好地适应你的要求。

1)使用demo作为默认设置,似乎插件会将标签放在轴线上方。我已经看到标签更好地准备 线的情况,所以我做了以下事情:

  xAxis: {
    crossing: 0,
    opposite: true,
    min: -20,
    max: 20,
    tickInterval: 1,
    gridLineWidth: 1,
    endOnTick: false,
    title: { text: '' },
    labels: { y: 15 }       // pushes the labels down below the crossing line
  },

2)然后,我按如下方式调整y轴的绘图线:

  yAxis: {
    min: -20,
    max: 20,
    tickInterval: 1,
    endOnTick: false,
    title: { text: 'some value' },
    plotLines: [{
      value: 0.1,
      width: 1,
      color: 'black',
      zIndex: 10 }]     // moves the plot line above the axis gridline
  },

zIndex值为10表示该行将显示在普通网格线的顶部。以下是它的外观:

enter image description here

如果能更好地回答你的问题,请告诉我。