我正在尝试解决一个奇怪的问题。我从ajax调用中得到一个json数组,我试图在highcart中绘制它。我已经从同一个数组映射了其他图形,一切都很好,直到我遇到了十进制数字(可能是巧合)。在这种情况下,日期显示良好,但y轴(价格)是空的。
现在,我可以'alert(s5)',并且数据显示在警报框上。我还运行了一个控制台日志,看到"["5.15","4.94","4.43","4.49","4.42","4.41"]"(也许是数字中的"导致了这个问题!?)
如果我手动将值放入highcharts数据中,它可以完美地工作,但我只是无法将数组分配给值并使其显示
代码看起来像:
function draw_flow(garray)
{
var obj = JSON.stringify(garray);
obj = JSON.parse(obj);
s5 = obj["closeprice"][0];
ticks = obj["date"][0];
alert(s5); //THIS DISPLAYS DATA FINE! "5.15,4.94,4.43,4.42,4.41"
$('#chart3').highcharts({
chart: {
marginBottom: 80
},
xAxis: {
categories: ticks
},
yAxis: {
labels: {
align: 'left',
x: 0,
y: -2
}
},
series: [{
data: s5 //This does not work
//data: [5.15,4.94,4.43,4.42,4.41] //this works
}]
});
}
你是正确的。Y轴不显示的原因是数据中的字符串。(应读作数字)
您必须将数据从字符串转换为数字数组,这可以通过以下
实现s5 = s5.map(Number);
这是一个示例jsFiddle,它显示了它的作用http://jsfiddle.net/e803sjsp/
有点厚脸皮,但你是否检查过s5实际上是一个数组,而不是逗号分隔值的字符串。