Javascript Highchart:从java传递序列映射时打印日期时间图表问题
我试图在highchart中绘制日期时间图。我正在通过java HashMap传递序列图,并在js中访问它,如下所示:Javascript Highchart:从java传递序列映射时打印日期时间图表问题,javascript,java,datetime,highcharts,Javascript,Java,Datetime,Highcharts,我试图在highchart中绘制日期时间图。我正在通过java HashMap传递序列图,并在js中访问它,如下所示: var chartRoot = '#{value}'.evalJSON(true); 并将地图按如下顺序依次输入: series : [{color:'#057E7E', data : chartRoot.series[0].y1axis, name
var chartRoot = '#{value}'.evalJSON(true);
并将地图按如下顺序依次输入:
series : [{color:'#057E7E',
data : chartRoot.series[0].y1axis,
name:'#{empty y1axistitle ? '' : y1axistitle}',
type: 'line',
tooltip: {
valuePrefix: ''
}
},{
color:'#FF8230',
data : chartRoot.series[0].y2axis,
name:'#{empty y2axistitle ? '' : y2axistitle}',
type: 'line',
tooltip: {
valuePrefix: '$'
},
yAxis: 1
}]
其中,Y1轴和Y2轴是包含2 y轴数据的哈希映射
我不能画这样的图。我甚至将哈希映射的类型更改为,但它不起作用。
请帮帮我,我是海查特的新手
提前感谢。您的数据有问题。当前您有一个对象:
{
1325376000000: 1.09,
1330560000000: 1.66,
1333238400000: 0.55,
more...
}
虽然应该有:
[
[1325376000000, 1.09],
[1330560000000, 1.66],
[1333238400000, 0.55],
more...
]
您可以在JS中对其重新格式化:
var myData = [];
for (var time in chartRoot.series[0].y1axis) {
myData.push([time, chartRoot.series[0].y1axis[time]]);
}
现在在
series.data
选项中使用myData
。您能展示一下在chartRoot.series[0].y1axis
中有什么吗?例如console.log(chartRoot.series[0].y1axis)
Object{1325376000000=1.09,1330560000000=1.66,133323840000000=0.55,更多…}基本上,它是一个long类型的映射,Float,long表示我使用的测试highchart文件中的时间(毫秒):data:[1325376000000,5],[1328054400000,10],[1330560000000,25],[13332384000000,35],[1335830400000,68]]这些都在完美地工作。我不知道我上面的代码出了什么问题。我怀疑是数据的格式出了问题。是否有任何方法可以将chartRoot.series[0].y1axis中的对象{1325376000000=1.09}更改为javascript中的[[1325376000000,5]]。请参考上述评论