Highcharts 多 y 轴和动态更新
Highcharts multiple y axis and dynamic update
我正在尝试制作这种类型的图表,我修改并合并了两个示例。这是 jsfiddle 中的结果:http://jsfiddle.net/cp0ux9qp/4/
$(function () {
$(document).ready(function () {
Highcharts.setOptions({
global: {
useUTC: false
}
});
$('#container').highcharts({
chart: {
zoomType: 'xy',
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {
// set up the updating of the chart each second
var serie1 = this.series[0];
var serie2 = this.series[1];
setInterval(function () {
var x = (new Date()).getTime(), // current time
y = Math.floor((Math.random() * 10) + 5),
z = Math.floor((Math.random() * 20) + 15);
serie1.addPoint([x, y], true, true);
serie2.addPoint([x, z], true, true);
}, 1000);
}
}
},
title: {
text: 'Oxygen and Temperature'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150
},
yAxis: [{ // Primary yAxis
labels: {
format: '{value}mg/L',
style: {
color: Highcharts.getOptions().colors[0]
}
},
title: {
text: 'Oxygen',
style: {
color: Highcharts.getOptions().colors[0]
}
}
}, { // Secondary yAxis
title: {
text: 'Temperature',
style: {
color: Highcharts.getOptions().colors[1]
}
},
labels: {
format: '{value}C',
style: {
color: Highcharts.getOptions().colors[1]
}
},
opposite: true
}],
tooltip: {
shared: true
},
legend: {
enabled: false
},
exporting: {
enabled: false
},
series: [{
name: 'Oxygen',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i += 1) {
data.push({
x: time + i * 1000,
y: Math.floor((Math.random() * 10) + 5)
});
}
return data;
}())
},
{
name: 'Temperature',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i += 1) {
data.push({
x: time + i * 1000,
y: Math.floor((Math.random() * 20) + 15)
});
}
return data;
}()),
yAxis:1
}
]
});
});
});
它不显示副Y轴,为什么?
当数据在一段时间内相同时会出现另一个问题,例如:
氧气:6.74
温度:16.7
X轴刻度修改,图形只显示一条线。
隐藏辅助轴的问题是因为您在容器样式 属性 + 您的 chart.marginRight: 20
中声明了最小宽度,您将轴从 div 上移开。如果您注释掉边距,您会看到辅助轴。
至于当您拥有相同缩放的 temp/oxygen 内容时 - 它应该如何表现?
我正在尝试制作这种类型的图表,我修改并合并了两个示例。这是 jsfiddle 中的结果:http://jsfiddle.net/cp0ux9qp/4/
$(function () {
$(document).ready(function () {
Highcharts.setOptions({
global: {
useUTC: false
}
});
$('#container').highcharts({
chart: {
zoomType: 'xy',
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {
// set up the updating of the chart each second
var serie1 = this.series[0];
var serie2 = this.series[1];
setInterval(function () {
var x = (new Date()).getTime(), // current time
y = Math.floor((Math.random() * 10) + 5),
z = Math.floor((Math.random() * 20) + 15);
serie1.addPoint([x, y], true, true);
serie2.addPoint([x, z], true, true);
}, 1000);
}
}
},
title: {
text: 'Oxygen and Temperature'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150
},
yAxis: [{ // Primary yAxis
labels: {
format: '{value}mg/L',
style: {
color: Highcharts.getOptions().colors[0]
}
},
title: {
text: 'Oxygen',
style: {
color: Highcharts.getOptions().colors[0]
}
}
}, { // Secondary yAxis
title: {
text: 'Temperature',
style: {
color: Highcharts.getOptions().colors[1]
}
},
labels: {
format: '{value}C',
style: {
color: Highcharts.getOptions().colors[1]
}
},
opposite: true
}],
tooltip: {
shared: true
},
legend: {
enabled: false
},
exporting: {
enabled: false
},
series: [{
name: 'Oxygen',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i += 1) {
data.push({
x: time + i * 1000,
y: Math.floor((Math.random() * 10) + 5)
});
}
return data;
}())
},
{
name: 'Temperature',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i += 1) {
data.push({
x: time + i * 1000,
y: Math.floor((Math.random() * 20) + 15)
});
}
return data;
}()),
yAxis:1
}
]
});
});
});
它不显示副Y轴,为什么? 当数据在一段时间内相同时会出现另一个问题,例如: 氧气:6.74 温度:16.7 X轴刻度修改,图形只显示一条线。
隐藏辅助轴的问题是因为您在容器样式 属性 + 您的 chart.marginRight: 20
中声明了最小宽度,您将轴从 div 上移开。如果您注释掉边距,您会看到辅助轴。
至于当您拥有相同缩放的 temp/oxygen 内容时 - 它应该如何表现?