我有一张图表,每秒都会使用来自服务器的数据进行更新,但图表似乎没有显示为区域图表,我将其中的系列类型指定为区域,但它仍然无法显示作为面积图。我注意到如果我在创建图表时初始化系列中的数据(带有一些随机数据)它可以工作,但图表不会准确,因为数据不是来自服务器。
以下是代码:
function createChart(asset, name) {
chart = new Highcharts.stockChart('chart', {
chart: {
events: {
load: function() {
setTimeout(function() {
interval = setInterval(function(){
requestData(asset, name)
}, 1000);
}, 1000);
}
}
},
rangeSelector: {
buttons: [{
count: 1,
type: 'minute',
text: '1M'
}],
inputEnabled: false,
selected: 0
},
navigator: {
enabled: false
},
title: {
text: name
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150,
//tickPixelInterval: 3600
},
yAxis: {
allowDecimals: true,
title: {
text: 'Values'
},
labels: {
//format: '{value: .2f}'
},
opposite: false,
plotLines: [{
value: 0,
width: 1,
dashStyle: 'longdashdot',
color: '#808080'
}]
},
series: [{
name: 'Price',
type: 'area',
color: '#2D2E2F',
data: []
}]
});
}
function requestData(asset, name) {
$.ajax({
url:' process_ajax.php',
data: {
action: 'get_asset_data',
asset: asset
},
success: function(res) {
if (res.success) {
var series = chart.series[0],
shift = series.data.length > 20;
chart.yAxis[0].plotLinesAndBands[0].options.value = res.data.price;
chart.yAxis[0].setExtremes(res.data.low, res.data.high);
chart.series[0].addPoint([res.data.time, res.data.price], true, shift);
}
},
cache: false
});
}
PS:图表更新正常,但问题是将其显示为区域图表。
编辑:
谢谢,我已经解决了,问题源于我的数据,y轴数据是作为字符串而不是数字接收的,为了解决这个问题,我只是将数据输入数字。