2017-07-27 152 views
0

我正在尝试将yaxis和xaxis四舍五入。例如,图中的3843应该是3.843,工具提示显示为3.843 k。Highcharts四舍五入yaxis和xaxis数字

我已经得到了工具提示工作,但不能得到它来改变图yaxis和xaxis值,使图形可以充分显示所有方面。

正如你可以在这里看到: http://jsfiddle.net/kzL0phfu/

这是X轴的样子

yAxis: { 
gridLineInterpolation: 'polygon', 
lineWidth: 0, 
min: 0, 
gridLineColor: "#808080", 
gridLineDashStyle: "Solid", 
gridLineWidth: 2, 
labels: { 
    format: '{value:.2f}', 
    style: { 
    color: '#c4c4c4', 
    font: '11px Trebuchet MS, Verdana, sans-serif' 
    } 
} 
} 

回答

0

使用dataLabelsformatter达到期望的结果

plotOptions: { 
    area: { 
     dataLabels: { 
     useHTML: true, 
     enabled: true, 
     formatter: function() { 
      value = this.y; 
      numericSymbolDetector = Math.abs(this.y); 
      if (numericSymbolDetector > 1000) { 
      value = Highcharts.numberFormat(value/1000, 3, '.', '') ; 
      } 
      return value 
     }, 
     style: { 
      color: '#c4c4c4', 
      font: '5px Trebuchet MS, Verdana, sans-serif' 
     } 
     }, 
     //enableMouseTracking: false 
    }, 
    series: { 
     lineColor: '#808080' 
    } 
    }, 

Fiddle示范

+0

您好,是但唯一的问题是与此有关的图表不等于为3.84仍显示更大然后7因为3.84是3840,但我所做的是使它能够同样地显示图表,以便整个图表显示,而不是由于数字较大而显示该行。正如你所看到的,6.245仍然超过了图表上的5000点,它应该只在5点以上,但是最后是k点。 –

+0

仍然没有得到你想要的。你可以添加一些截图,显示你想要的东西。 –

+0

我想要做的就是当它的3000将它舍入到3k时,而且在图上显示为3而不是3000.目前,工具提示轮到3k和图上的标签,但图中它自身不会舍入为3.由于目前您可以看到,由于数字的大小,您无法看到图表的其他部分。 –

0

如果要以相同方式显示yAxis标签,请从yAxis.labels对象中除去格式化程序(然后将显示千位前缀)。如果您想要将点的精确值显示为y轴标签,则可以在载入事件时更新tickPositions阵列并充分格式化它们。看看下面的例子。

API参考:
http://api.highcharts.com/highcharts/chart.events.load http://api.highcharts.com/highcharts/yAxis.tickPositions

实施例:
http://jsfiddle.net/ojno8rx1/

+0

你好,是的,但唯一的问题在于这个图表与3.84仍然不相同,因为3.84仍然显示为大于7,因为3.84是3840,但是我之后所做的是使它能够平等地显示图表,以便整个图表显示而不是由于它对一个大数字。 –