我试图沿两个y轴构建一个带有渐变指示器的折线图。
这是一个例子,它带给我约90%的路程:
$('#container').highcharts({
// ...
yAxis: [{
title: {
text: 'parts per million',
style: {
color: '#444'
}
},
opposite: true,
lineColor: {
linearGradient: [0, 0, 0, 300],
stops: [
[0, 'rgb(255, 0, 0)'],
[0.5, 'rgb(255, 255, 0)'],
[1, 'rgb(0, 255, 0)'],
]
},
lineWidth: 15,
offset: 10
}, {
opposite: false,
linkedTo: 0,
gridLineWidth: 0,
title: {
text: 'parts per million',
style: {
color: '#444'
}
},
lineColor: {
linearGradient: [0, 0, 0, 300],
stops: [
[0, 'rgb(255, 0, 0)'],
[0.5, 'rgb(255, 255, 0)'],
[1, 'rgb(0, 255, 0)']
]
},
lineWidth: 15,
offset: 10
}]
// ...
(请参阅http://jsfiddle.net/mmwhx/6/上的完整示例)
剩余的10%涉及精确控制渐变"停止",使得它们对应于沿y轴的值(例如,从50-100,条形应该是绿色;从100开始; -200,条形应为黄色;从200到轴的末端,条形应为红色)。因为我没有限制沿y轴的值范围,所以不可能使用0-1.0比例确定停止的位置。
如果以某种方式提供y轴的最大值,我总是可以计算停止点。但有些事情告诉我,可能有一种更优雅的方式来实现我想要的东西,尽管我很遗憾没有偶然发现任何例子。