Javascript 为什么不是';显示日期的X轴不是吗?
我有一个关于海图的问题。下面是我实现highchart的代码,yaxis上有整数值,x轴上有日期。我从数据库中获取数据,包括日期和值 x轴日期和时间显示不正确。在我的数据库中看起来是这样的,2015-04-27 15:26:41.463Javascript 为什么不是';显示日期的X轴不是吗?,javascript,highcharts,Javascript,Highcharts,我有一个关于海图的问题。下面是我实现highchart的代码,yaxis上有整数值,x轴上有日期。我从数据库中获取数据,包括日期和值 x轴日期和时间显示不正确。在我的数据库中看起来是这样的,2015-04-27 15:26:41.463 var a = []; $('#container').highcharts({ chart: { type: 'spline', animation: Highcharts.svg, // don't animate i
var a = [];
$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {
// set up the updating of the chart each second
var series = this.series[0];
xAxis[0].setCategories(x);
}
}
},
title: {
text: 'Live random data'
},
xAxis: {
categories: a
},
yAxis: {
title: {
text: 'Value'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' + Highcharts.numberFormat(this.y, 1);
}
},
legend: {
enabled: false
},
exporting: {
enabled: false
},
series: [{
data: series
}]
});
var a=[];
$(“#容器”)。高图({
图表:{
类型:“样条线”,
动画:Highcharts.svg,//不要在旧IE中设置动画
marginRight:10,
活动:{
加载:函数(){
//设置图表的每秒更新
var系列=本系列[0];
xAxis[0]。集合类别(x);
}
}
},
标题:{
文本:“实时随机数据”
},
xAxis:{
类别:a
},
亚克斯:{
标题:{
文本:“值”
},
绘图线:[{
值:0,
宽度:1,
颜色:'#808080'
}]
},
工具提示:{
格式化程序:函数(){
返回'+this.series.name+'
'+Highcharts.dateFormat(“%Y-%m-%d%H:%m:%S',this.x)+'
'+Highcharts.numberFormat(this.Y,1);
}
},
图例:{
已启用:false
},
出口:{
已启用:false
},
系列:[{
数据:系列
}]
});
更新
这就是我现在达到的目标
.success(function (point) {
for (i = 0; i < point.length; i++) {
myDate[i] = point[i].date_time;
value[i] = point[i].value_db;
}
for (j = 0; j < myDate.length; j++) {
var temp = new Array(myDate[j], value[j]);
mySeries[j] = temp;
}
DrawChart(mySeries, myDate, value);
})
function DrawChart(series, x, y) {
//Fill chart
$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {
// set up the updating of the chart each second
var series = this.series[0];
}
}
},
title: {
text: 'Live random data'
},
xAxis: {
type: 'datetime',
//tickPixelInterval: 150
},
yAxis: {
title: {
text: 'Value'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' + Highcharts.numberFormat(this.y, 2);
}
},
legend: {
enabled: false
},
exporting: {
enabled: false
},
series: [{
name: 'Random data',
data: series
}]
});
}
.success(函数(点){
对于(i=0;i '+Highcharts.dateFormat(“%Y-%m-%d%H:%m:%S',this.x)+'
'+Highcharts.numberFormat(this.Y,2);
}
},
图例:{
已启用:false
},
出口:{
已启用:false
},
系列:[{
名称:'随机数据',
数据:系列
}]
});
}
更新2
请帮助。您必须更改
myDate[i]=点[i]。日期\时间代码>
至:
myDate[i] = parseInt((point[i].date_time).substring(6, 19));
因此,它将包含日期时间的日期格式
然后您必须像这样使用xAxis.labels.formatter:
xAxis: {
labels: {
formatter: function() {
var date = new Date(this.value);
return date.getFullYear() + "-" +
date.getMonth() + "-" +
date.getDate() + " " +
date.getHours() + ":" +
date.getMinutes() + ":" +
date.getSeconds();
}
}
}
告诉图表如何显示其xAxis标签
要在yAxis中显示更多标签,您可以使用:
yAxis: {
tickInterval: 100 // if you want the labels to show every 100 values
}
您的代码与图片不匹配。如果可以,请在中提供一个实时演示。顺便说一下,datetime不适用于类别。您正在xAxis中设置类别。相反,你应该把你的日期放在
系列中。数据如下:[[143038718477,你的第一个数据],[1430126796043,你的第二个数据],…]@RaeenHashemi我在问题中添加了一个更新部分,显示了额外的代码,并按照你的建议对之前的代码进行了更改,但输出结果仍然很奇怪,尽管更少。我如何才能得到正确的日期,以及JAN第一次出现在哪里?我的代码中没有提到任何东西。感谢您对JSFIDLE的帮助。由于我自己的数据不是随机生成的,也不是硬编码的,所以我没有这样的经验。@RaeenHashemi如果您能告诉我如何在yaxis上添加更多的数字以保证准确性,我将不胜感激。您的点[I]。date\u time
返回什么?您可以使用date.getFullYear等来代替date.getFullYear等