2017-03-20 55 views
1

我有一个小团队的开发人员为我绘制一些医疗数据。他们回来没有解决。希望这里有人能帮忙。Y轴标记是奇数的倍数

绘制一系列图时,y轴倍数不是默认的高倍数倍数。例如,当我绘制下面的代码时,在高位图中,y轴标签为0,250,500,750,1000,1250。

但是,当我在我的应用程序中查看图形时,获得以下内容:0,95,190,285,380,475,570,665,760,855,950。见附图。 Odd intervals

我可以提供的唯一其他信息是容器大小是相对的,当我改变窗口大小时,索引值会改变。那会暗示他们没有硬编码是一个固定倍数。

Highcharts.chart('container', { 

title: { 
    text: 'Solar Employment Growth by Sector, 2010-2016' 
}, 

subtitle: { 
    text: 'Source: thesolarfoundation.com' 
}, 

yAxis: { 
    title: { 
     text: 'Number of Employees' 
    } 
}, 
legend: { 
    layout: 'vertical', 
    align: 'right', 
    verticalAlign: 'middle' 
}, 

plotOptions: { 
    series: { 
     pointStart: 2010 
    } 
}, 

series: [ { 
    name: 'Other', 
    data: [0,100,2,4,8,16,32,64,128,256,512,1024] 
}] 

}); 
+0

有允许控制蜱位置的几个选项 - tickInterval,tickPositions,tickPixelInterval,tickPositioner - 见轴API http://api.highcharts.com/highcharts/xAxis.tickInterval。你想蜱有固定的价值吗?如果是这样,你应该使用tickPositions或tickPositioner - https://jsfiddle.net/m6Lqp95m/ – morganfree

+0

谢谢,这使我走上正轨。 – Rob

回答

0

所以一个解决方案如下。基本上,它扫描阵列的数量比理想的分频器数量多(在本例中为10)。然后它将其用作期望的时间间隔。

function returnInterval(){ 
var intervalArray = 
[.0001,.001,.01,.1,1,2,5,10,20,50,100,250,500,1000,5000,10000] 
var min = .0012 //min from series below 
var max = .1001 //max from series below 
var idealDivider = (max - min)/10 //where 10 is the number of desired markers 

for(var i=0; i<intervalArray.length; i++) { 
    if (intervalArray[i] >= idealDivider) return intervalArray[i]; 
} 
} 

Highcharts.chart('container', { 
yAxis:{ 

    tickInterval: returnInterval() 
}, 
series: [{ 
    data: [.0012,.0213,.0123,.0532,.042,.009942,.1001] 
}]});