我有任何简单的方法来加载热图中的数据,日期为" Y"。
我的数据采用以下格式:
[{x:1, y: 1401292253, value:0.2, name:"a"},{x:2, y: 1401173762, value:0.3, name:"b"},{x:0, y: 1401173462 , value:0.6, name:"c"}]
我希望根据给定的值自动构建热图的Y.但是我无法弄清楚如何去做。
答案 0 :(得分:3)
您需要设置rowsize
(或colsize
表示xAxis)以告知高级图表每个点的范围。否则它将是1ms,这是非常低的价值。第二件事是你的y值以秒为单位,而在JS中,时间戳以ms为单位。
当改变这两件事时,你会得到漂亮的图表:http://jsfiddle.net/tZ6GP/19/
series: [{
rowsize: 3600000, // one hour
data: [{
x: 0,
y: 1401292253000,
value: 0.2,
name: "a"
}, {
x: 1,
y: 1401173762000,
value: 0.3,
name: "b"
}, {
x: 2,
y: 1401173462000,
value: 0.6,
name: "c"
}]
}]
答案 1 :(得分:1)
要执行此操作,您必须将yAxis
视为类别,但随后应用label.format
。这应该让你开始:
xAxis: {
type: 'category',
categories: ['a', 'b', 'c']
},
yAxis: {
type: 'category',
categories: ['1401292253', '1401173762', '1401173462'],
labels: {
format: '{value: %H:%M:%S}'
}
}
我还清理了你的series.data
。基本上你需要给出矩阵坐标(x / y)和值。
series: [{
data: [{
x: 1,
y: 0,
value: 0.2
}, {
x: 2,
y: 1,
value: 0.3
}, {
x: 0,
y: 2,
value: 0.6
}]
}]
通过查看此信息,您可以确定积分的位置。
直播 demo 。
更新最新的高级卡片代码。您需要修改yAxis标签格式化程序:
yAxis: {
categories: ['1401292253', '1401173762', '1401173462'],
labels: {
formatter: function () {
var theTime = parseFloat(this.value);
return Highcharts.dateFormat('%H:%M:%S', theTime);
}
}
},
直播更新demo。