Javascript highcharts:如何在xAxis中将浮动显示为datetime
我试图绘制以下示例数据。我想显示x轴作为浮点数的日期时间。但它继续显示为1970-01-01。有人能帮助我理解如何正确地获得它吗 我复制了下面的high charts示例。但我想将x轴显示为日期,如“2017-03-20”,而不是原始浮动 非常感谢你的帮助 多谢各位Javascript highcharts:如何在xAxis中将浮动显示为datetime,javascript,highcharts,Javascript,Highcharts,我试图绘制以下示例数据。我想显示x轴作为浮点数的日期时间。但它继续显示为1970-01-01。有人能帮助我理解如何正确地获得它吗 我复制了下面的high charts示例。但我想将x轴显示为日期,如“2017-03-20”,而不是原始浮动 非常感谢你的帮助 多谢各位 Highcharts.chart('container', { chart: { zoomType: 'xy' }, title: {
Highcharts.chart('container', {
chart: {
zoomType: 'xy'
},
title: {
text: 'Average Monthly Temperature and Rainfall in Tokyo'
},
credits: {
text: 'Songhuiming',
href: 'http://www.songhuiming.com'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: [{
type: 'datetime',
dateTimeLabelFormats: {day: '%Y-%b-%d'},
categories: [1489298400000.0, 1492923600000.0, 1492318800000.0, 1480226400000.0, 1494133200000.0, 1490504400000.0, 1488088800000.0, 1475384400000.0, 1493528400000.0, 1491109200000.0, 1480831200000.0, 1471755600000.0],
crosshair: true,
labels: {rotation: 90, step: 2}
}],
yAxis: [{ // Primary yAxis
labels: {
format: '{value}°C',
style: {
color: Highcharts.getOptions().colors[1]
}
},
title: {
text: 'Temperature',
style: {
color: Highcharts.getOptions().colors[1]
}
}
}, { // Secondary yAxis
title: {
text: 'Rainfall',
style: {
color: Highcharts.getOptions().colors[0]
}
},
labels: {
format: '{value} mm',
style: {
color: Highcharts.getOptions().colors[0]
}
},
opposite: true
}],
tooltip: {
shared: true
},
legend: {
layout: 'vertical',
align: 'left',
x: 120,
verticalAlign: 'top',
y: 100,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
},
series: [{
name: 'Rainfall',
type: 'column',
yAxis: 1,
data: [1, 7, 2, 1, 4, 1, 1, 1, 4, 6, 1, 1],
tooltip: {
valueSuffix: ' mm'
}
}, {
name: 'Temperature',
type: 'spline',
data: [110, 105, 104, 96, 102, 93, 93, 105, 118, 119, 101, 94],
tooltip: {
valueSuffix: '°C'
}
}]
});
似乎适当的dateTimeLabelFormats工作不正常,因此您可以将浮点时间戳转换为格式化的日期字符串:
new Date(1489298400000.0).toLocaleDateString()
下面是完整的示例:
Highcharts.chart('container'{
图表:{
zoomType:'xy'
},
标题:{
文字:“东京月平均气温和降雨量”
},
学分:{
文字:“宋慧明”,
href:'http://www.songhuiming.com'
},
副标题:{
文本:'来源:WorldClimate.com'
},
xAxis:[{
类别:[新日期(1489298400000.0).toLocaleDateString(),新日期(149292360000.0).toLocaleDateString(),新日期(149238800000.0).toLocaleDateString(),新日期(1480226400000.0).toLocaleDateString(),新日期(1490504400000.0).toLocaleDateString(),新日期(1488088800000.0).toLocaleDateString()),新日期(1475384400000.0)。toLocaleDateString(),新日期(1493528400000.0)。toLocaleDateString(),新日期(1491109200000.0)。toLocaleDateString(),新日期(1480831200000.0)。toLocaleDateString(),新日期(1471755600000.0)。toLocaleDateString(),
十字准星:没错,
标签:{旋转:90,步骤:2}
}],
yAxis:[{//主yAxis
标签:{
格式:“{value}°C”,
风格:{
颜色:Highcharts.getOptions().color[1]
}
},
标题:{
文字:“温度”,
风格:{
颜色:Highcharts.getOptions().color[1]
}
}
},{//次雅克西
标题:{
文字:‘降雨’,
风格:{
颜色:Highcharts.getOptions().color[0]
}
},
标签:{
格式:“{value}mm”,
风格:{
颜色:Highcharts.getOptions().color[0]
}
},
相反:对
}],
工具提示:{
分享:真的
},
图例:{
布局:“垂直”,
对齐:“左”,
x:120,
垂直排列:“顶部”,
y:100,
浮动:是的,
背景颜色:(Highcharts.theme&&Highcharts.theme.legendBackgroundColor)| |'#FFFFFF'
},
系列:[{
名称:"降雨",,
键入:“列”,
亚克西斯:1,,
数据:[1,7,2,1,4,1,1,1,4,6,1,1,1],
工具提示:{
valueSuffix:'mm'
}
}, {
名称:“温度”,
类型:“样条线”,
数据:[110、105、104、96、102、93、93、105、118、119、101、94],
工具提示:{
valueSuffix:“°C”
}
}]
});代码>
将手动格式化的时间戳分配给类别
在这里不是一个好方法。Highcharts已经内置了处理axis日期时间标签的机制
首先将x轴的类型更改为datetime
。然后使用时间戳作为点的x值。可以通过为每个点显式指定特定的时间戳,或者使用pointInterval
结合pointStart
(当点之间的距离恒定时)来完成
关于数据格式的文档:
记录轴的类型:
API参考资料: