我想要一个6个月的图表,默认显示每月视图,但可以缩放到当天。
今天我们的6个月图表:
xAxis: {
title: {
text: 'Temperature'
},
categories: ['Oct','Nov','Dec','Jan','Feb','Mar',]
series: [
{ name: 'my series',
visible: true,
data: [5,10,15,5,7,8,]},
{ name: 'another series',
visible: true,
data: [0,0,0,146,80,0,]},
这对每月都很有用。
要获取每日数据,我可以将大约30 * 6个元素输入到数据中。我也尝试使用:
pointStart: Date.UTC(2010, 11, 1),
pointInterval: 30 * 24 * 3600 * 1000 // one day
就像这个例子:http://jsfiddle.net/7Mmee/9/
但问题不是每个月都有30天,图表底部也没有显示类别。我确信有一种简单的方法可以解决这个问题。
感谢 乔尔
答案 0 :(得分:8)
看起来好像每个月都要显示一个数据点。如果是这种情况,我建议您一次分配每个数据点并更改日期格式化程序。
//Example 1: Each data point has a time, with a date formatter:
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: { //custom date formats for different scales
second: '%H:%M:%S',
minute: '%H:%M',
hour: '%H:%M',
day: '%e. %b',
week: '%e. %b',
month: '%b', //month formatted as month only
year: '%Y'
}
},
series: [{
data: [
{x: Date.UTC(2010, 0, 1), y: 1}, //one data point for each month
{x: Date.UTC(2010, 1, 1), y: 4},
{x: Date.UTC(2010, 2, 1), y: 9},
{x: Date.UTC(2010, 3, 1), y: 16},
{x: Date.UTC(2010, 4, 1), y: 25},
{x: Date.UTC(2010, 5, 1), y: 36}
]
}]
});
但是,您似乎也希望缩小到“日期”级别。如果是这种情况,将所有数据点添加到系列中是有意义的,并使用highcharts的zoomType
属性,可能与日期格式化程序结合使用。
//Example 2: Each data point represents a day, and we use the 'zoomType' feature:
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
type: 'datetime',
zoomType: 'x'
},
series: [{
data: [
{x: Date.UTC(2010, 0, 1), y: 1}, //one data point for each day
{x: Date.UTC(2010, 0, 2), y: 1.1},
{x: Date.UTC(2010, 0, 3), y: 1.4},
{x: Date.UTC(2010, 0, 4), y: 1.8},
{x: Date.UTC(2010, 0, 5), y: 2.5},
{x: Date.UTC(2010, 0, 6), y: 3.8}
]
}]
});
答案 1 :(得分:2)
我认为这会奏效:
您可以将数据作为一对时间戳和值传递,请查看以下示例:http://jsfiddle.net/CAKQH/310/