【发布时间】:2014-06-10 15:12:45
【问题描述】:
我正在使用 highcharts.js 实现一个图表,并且在通过 json 文件加载数据时遇到了问题。 使用后我终于取得了一些成功: http://codeinjs.blogspot.in/2013/07/preprocess-json-data-to-use-in.html
我的数据库在一列中有日期,在另一列中有指标,我正在使用以下代码将两者都加载到图表中:
var processed_json = new Array();
$.map(filter1, function(obj, i) {
var date = new Date(obj.date_hour);
processed_json.push([obj.date_hour, parseInt(obj.metric)]);
});
$(function () {
$('#container').highcharts({
chart: {
zoomType:'xy'
},
title: {
text: 'Trend Graph'
},
subtitle: {
text: 'Metric, YOY and WOW'
},
xAxis: {
type: "datetime",
min:processed_json.date_hour,
//minRange: 14 * 24 * 3600000, // fourteen days
dateTimeLabelFormats: {
day: '%b %e'
}
},
series: [{
type: 'column',
data: processed_json,
pointStart: processed_json.date_hour,
//,Date.UTC(2012, 5, 1),
pointInterval: 24 * 3600 * 1000 // one day
}]
});
});
现在,问题是正在加载所有指标数据,但未加载 x 轴上的日期。 之前有一些随机值,现在加载日期从 1 月 1 日到 1 月 14 日。
我的日期是从 5 月 1 日到 5 月 14 日,或者它可能会随着我在 (filter1) 中的数据的变化而变化
所以,基本上 y 轴会随着数据动态变化,而 x 轴会随着日期变化。
我试过了
1
pointStart: processes_json.date_hour // 不工作
2
chart.series[0].update({ 点开始:已处理_json.date_hour, pointInterval: 24 * 3600 * 1000, // 一天 数据:processed_json.metric }, 错误的); //也不行
有人可以给我一个更好的建议/方法来解决这个问题,在 x 轴上获取我的数据中的日期。
另外,如果可能的话,当我放大日期时,我希望它变成小时,然后是分钟,最后是秒。
欢迎所有建议。
更新: 图片:http://tinypic.com/r/2s0ba4k/8
图像显示了我们绘制的图表,您可以看到 x 轴显示 1 月 1 日至 1 月 14 日,而在工具提示中显示的是正确的日期。
如何在 x 轴上显示正确的日期?
【问题讨论】:
-
请检查“processed_json.date_hour”是数组还是单例值。因为开始日期应该是一个特定值而不是一组值。
标签: javascript json date highcharts