我需要创建一个折线图,其中xAxis将显示垂直网格线而不是水平网格线,就像在“chart:{inverted:true}”情况下一样(例如在下面的屏幕上)。
不幸的是,这个解决方案并不完全准确,因为它也会切换数据的顺序,所以实际上距离刻度最终位于图表的一侧,而它应该位于底部,如下所示:
proper data order but with horizontal gridlines
我的问题是:有没有办法让网格线垂直显示而不切换数据的顺序?
以下是Highcharts演示的示例图表,我想更改网格线的显示:
$(function () {
$('#container').highcharts({
chart: {
type: 'spline',
inverted: false
},
xAxis: {
reversed: false,
labels: {
formatter: function () {
return this.value + 'km';
}
},
},
yAxis: {
title: {
text: 'Temperature'
},
labels: {
formatter: function () {
return this.value + '°';
}
},
},
legend: {
enabled: false
},
series: [{
name: 'Temperature',
data: [[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1],
[50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]
}]
});
PS我不想篡改传递给函数的数据的顺序。
答案 0 :(得分:5)
您是否考虑过使用xAxis.gridLineWidth和xAxis.gridLineColor参数? http://api.highcharts.com/highcharts/xAxis.gridLineWidth http://api.highcharts.com/highcharts/xAxis.gridLineColor
$(function() {
$('#container').highcharts({
chart: {
type: 'spline',
inverted: false
},
xAxis: {
reversed: false,
gridLineWidth: 1,
labels: {
formatter: function() {
return this.value + 'km';
}
},
},
yAxis: {
title: {
text: 'Temperature'
},
gridLineWidth: 0,
labels: {
formatter: function() {
return this.value + '°';
}
},
},
legend: {
enabled: false
},
series: [{
name: 'Temperature',
data: [
[0, 15],
[10, -50],
[20, -56.5],
[30, -46.5],
[40, -22.1],
[50, -2.5],
[60, -27.7],
[70, -55.7],
[80, -76.5]
]
}]
});
});
在这里你可以看到一个如何工作的例子: http://jsfiddle.net/r3wd8j7t/1/