Highcharts混合列/样条曲线,错误的xaxis标签
我正在尝试完成一个图表,在这个图表中,我报告了一个月内的每日产量以及其他几个基于每日的系列。图表总是设置为满刻度,这意味着我总是显示一个月内的所有天,即使我没有这些天的值,无论是什么原因。在每个月的第一天,我将上个月的图表显示为报告 我已经安排好让你有个主意。我一直在努力解决的问题是,无论我做什么,Highcharts都会忽略我,并在x轴上显示错误的标签。因此,一天从2开始,贯穿整个月直到最后一天,以1结束 这是我的图表的代码:Highcharts混合列/样条曲线,错误的xaxis标签,highcharts,Highcharts,我正在尝试完成一个图表,在这个图表中,我报告了一个月内的每日产量以及其他几个基于每日的系列。图表总是设置为满刻度,这意味着我总是显示一个月内的所有天,即使我没有这些天的值,无论是什么原因。在每个月的第一天,我将上个月的图表显示为报告 我已经安排好让你有个主意。我一直在努力解决的问题是,无论我做什么,Highcharts都会忽略我,并在x轴上显示错误的标签。因此,一天从2开始,贯穿整个月直到最后一天,以1结束 这是我的图表的代码: $(function() { var chart = ne
$(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'tab-month-graph',
zoomType: 'xy'
},
title: {
text: 'Daily - August 2015'
},
xAxis: {
type: 'datetime',
tickInterval: 24 * 3600 * 1000,
labels: {
align: 'center',
text: 'Giorni',
style: {
fontSize: '10px',
fontFamily: 'Verdana, sans-serif'
}
},
dateTimeLabelFormats: {
day: '%e'
}
},
yAxis: [{ // Primary yAxis
title: {
text: 'Produzione giornaliera',
style: {
color: Highcharts.getOptions().colors[1]
}
}
},
{ // Secondary yAxis
title: {
text: 'PR giornaliero',
style: {
color: Highcharts.getOptions().colors[0]
}
},
min: 0,
startOnTick: false,
opposite: true
}],
legend: {
enabled: false
},
series: [{
name: 'Prod.',
type: 'column',
data: [[1438466230000, 4603.36],[1438552630000, 4264.92],[1438639030000, 3108.05],[1438725430000, 2047.03],[1438811830000, 2270.39],[1438898230000, 2258.2],[1438984630000, 3971.95],[1439071030000, 3784.45],[1439157430000, 3674.53],[1439243830000, 3131.95],[1439330230000, 1963.13],[1439416630000, 3333.52],[1439503030000, 4161.8],[1439589430000, 4408.59],[1439675830000, 2968.83],[1439762230000, 2808.05],[1439848630000, 4439.77],[1439935020000, 3746.48],[1440021430000, 4980],[1440107830000, 3683.91],[1440194230000, 4480.78],[1440280630000, 4406.48],[1440367030000, 4518.98],[1440453430000, 4492.73],[1440539830000, 3924.14],[1440626230000, 4062.89],[1440712630000, 3225.47],[1440799030000, 3213.75],[1440885430000, 4631.95],[1440971830000, 4471.17],[1441058230000, 4223.91]],
color: '#89CE7F',
dataLabels: {
enabled: true,
rotation: -90,
color: '#000000',
align: 'right',
x: 4,
y: 10,
style: {
fontSize: '11px',
fontFamily: 'Verdana, sans-serif',
textShadow: '0 0 3px black'
}
}
},
{
name: 'PR',
type: 'spline',
yAxis: 1,
lineWidth: 0,
marker: {
radius: 6
},
data: [[1438466230000, 73.36],[1438552630000, 75.08],[1438639030000, 57.54],[1438725430000, 38.85],[1438811830000, 39.14],[1438898230000, 63.78],[1438984630000, 76.03],[1439071030000, 75.78],[1439157430000, 77.61],[1439243830000, 79.74],[1439330230000, 77.35],[1439416630000, 73.98],[1439503030000, 75.79]],
color: '#AA0000',
tooltip: {
valueSuffix: ' %'
}
},
{
name: 'PR Cont.',
type: 'spline',
yAxis: 1,
lineWidth: 0,
marker: {
radius: 5,
symbol: 'circle'
},
data: [[1438466230000, 78.84],[1438552630000, 79.85],[1438639030000, 75.16],[1438725430000, 59.15],[1440971830000, 78.5],[1441058230000, 78.45]],
color: '#BBBB00',
tooltip: {
valueSuffix: ' %'
}
}
],
tooltip: {
xDateFormat: '%A, %d %B %Y',
valueSuffix: ' kW',
shared: true // LEGENDA CONDIVISA
},
plotOptions: {
series: {
pointStart: Date.UTC(2015, 7, 1),
pointRange: 24 * 3600 * 1000
}
}
});
});
我读了很多关于堆栈溢出的帖子,尝试了很多建议,我甚至尝试了一个类似的问题,但它并没有解决我的问题。
有人能给我指出正确的解决方案吗?尝试highchart函数上方的函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值
$( function () {
Highcharts.setOptions( {
lang : {
rangeSelectorZoom : ' '
},
global : {
useUTC : false
}
} );
} );
尝试highchart函数上方的以下函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值
$( function () {
Highcharts.setOptions( {
lang : {
rangeSelectorZoom : ' '
},
global : {
useUTC : false
}
} );
} );
尝试highchart函数上方的以下函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值
$( function () {
Highcharts.setOptions( {
lang : {
rangeSelectorZoom : ' '
},
global : {
useUTC : false
}
} );
} );
尝试highchart函数上方的以下函数,并设置xAxis最小值和最大值。 使用第一个时间戳(日期)作为最小值,最后一个时间戳(日期)作为最大值
$( function () {
Highcharts.setOptions( {
lang : {
rangeSelectorZoom : ' '
},
global : {
useUTC : false
}
} );
} );
只是想澄清一下:由于时间(
21:57:10UTC
)的原因,列看起来像是按一天翻译的——这几乎是另一天(没有UTC,GMT+2:00的时间是23:57:10)。一般来说,如果您有每日数据,那么最好使用00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:
function modify(data) {
var time;
data.map(function(e) {
time = new Date(e[0]);
time.setUTCHours(0);
time.setUTCMinutes(0);
time.setUTCSeconds(0);
e[0] = time.getTime();
return e;
});
return data;
}
以及:
演示:
注意:要删除轴上最后一个位置的额外记号,只需设置xAxis.max
回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用 澄清一下:栏目看起来像是按一天翻译的,因为那个时间(21:57:10 UTC
)-几乎是另一天(没有UTC,GMT+2:00是23:57:10)。一般来说,如果您有每日数据,那么最好使用00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:
function modify(data) {
var time;
data.map(function(e) {
time = new Date(e[0]);
time.setUTCHours(0);
time.setUTCMinutes(0);
time.setUTCSeconds(0);
e[0] = time.getTime();
return e;
});
return data;
}
以及:
演示:
注意:要删除轴上最后一个位置的额外记号,只需设置xAxis.max
回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用 澄清一下:栏目看起来像是按一天翻译的,因为那个时间(21:57:10 UTC
)-几乎是另一天(没有UTC,GMT+2:00是23:57:10)。一般来说,如果您有每日数据,那么最好使用00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:
function modify(data) {
var time;
data.map(function(e) {
time = new Date(e[0]);
time.setUTCHours(0);
time.setUTCMinutes(0);
time.setUTCSeconds(0);
e[0] = time.getTime();
return e;
});
return data;
}
以及:
演示:
注意:要删除轴上最后一个位置的额外记号,只需设置xAxis.max
回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用 澄清一下:栏目看起来像是按一天翻译的,因为那个时间(21:57:10 UTC
)-几乎是另一天(没有UTC,GMT+2:00是23:57:10)。一般来说,如果您有每日数据,那么最好使用00:00:00
,因为这正是日期开始的时间。操作JSON应该没那么难,请参见:
function modify(data) {
var time;
data.map(function(e) {
time = new Date(e[0]);
time.setUTCHours(0);
time.setUTCMinutes(0);
time.setUTCSeconds(0);
e[0] = time.getTime();
return e;
});
return data;
}
以及:
演示:
注意:要删除轴上最后一个位置的额外记号,只需设置xAxis.max
回答评论中的问题:否,
pointInterval
在数据为x-y对时不应使用 我刚刚尝试了你的建议,但没有成功:(我已经尝试了useUTC:false解决方案,但没有成功。奇怪的是,highCharts似乎忽略了我试图更改xAxis值开始的任何内容。例如,不应该指向开始:Date.UTC(2015,7,1)强制高点图表从8月1日开始?我再次查看了您的数据。第一个数据点从“143846630000”开始它的值为GMT:Sat,2015年8月1日21:57:10 GMT您的时区:8/2/2015,3:27:10 AM GMT+5:30,因此它似乎在8月1日星期六21:57开始,但在我的时区中,它从8月2日开始。这可能是它在轴上显示错误标签的原因。请再次检查您是否使用UTC:fa我会在正确的地方用你的代码更新JSFIDLE,至少我希望是这样……好的,完成了。看起来什么都没有改变:'(对于我的时区,您指出的时间戳应该是2015年8月1日23.57我刚刚尝试使用143838720000作为第一个值的时间戳,xAxis上的1就在那里!所以这只是“日期时间”的问题)。至少我们已经找到了处理这个问题的方法…现在我需要一个解决方案。处理所有的时间戳这不是一个好主意,因为它会使生成传递到图表的jSon数组的代码复杂一点。感谢您为我指明了正确的方向!这只是时间戳的问题。我刚刚尝试了您的建议,但没有成功s:(我已经尝试了useUTC:false解决方案,但没有成功。奇怪的是,highCharts似乎忽略了我试图更改xAxis值开始的任何内容。例如,pointStart:Date.UTC(2015,7,1)不应该强制highCharts从8月1日开始吗?我再次查看了您的数据。第一个数据点开始于“143846630000”,其值为GMT:Sat,2015年8月1日2