我想绘制一个按地区划分的 Highcharts
面积图
,即一年中按国家/地区划分的人口。
我有一个带有模式的制表符分隔数据(日期(月/日/年)、国家/地区、人口):
12/29/2014 india 1853
12/29/2014 france 1953
01/05/2015 india 5087
01/05/2015 china 11672
01/05/2015 france 8493
01/12/2015 china 9516
01/26/2015 france 10856
01/26/2015 india 3078
01/26/2015 china 37202
我无法将 x 轴设置为日期范围,即从 12/01/2014
到 01/31/2015
的 x 轴值。
我在JSFiddle中看到了这个例子但这个例子让我更加困惑:他们的数据没有任何日期值,但他们能够绘制一年内的“美国”和“俄罗斯”弹头数量:
Highcharts.chart('container', {
chart: {
type: 'area'
},
title: {
text: 'Randon Plot for demo'
},
subtitle: {
text: 'Sources: '
},
xAxis: {
type: 'datetime',
allowDecimals: false,
labels: {
formatter: function () {
return this.value; // clean, unformatted number for year
}
}
},
yAxis: {
title: {
text: 'Nuclear weapon states'
},
labels: {
formatter: function () {
return this.value / 1000 + 'k';
}
}
},
tooltip: {
pointFormat: '{series.name} had stockpiled <b>{point.y:,.0f}</b><br/>warheads in {point.x}'
},
plotOptions: {
area: {
pointStart: 1940,
marker: {
enabled: false,
symbol: 'circle',
radius: 2,
states: {
hover: {
enabled: true
}
}
}
}
},
series: [{
name: 'USA',
data: [
null, null, null, null, null, 6, 11, 32, 110, 235,
369, 640, 1005, 1436, 2063, 3057, 4618, 6444, 9822, 15468,
20434, 24126, 27387, 29459, 31056, 31982, 32040, 31233, 29224, 27342,
26662, 26956, 27912, 28999, 28965, 27826, 25579, 25722, 24826, 24605,
24304, 23464, 23708, 24099, 24357, 24237, 24401, 24344, 23586, 22380,
21004, 17287, 14747, 13076, 12555, 12144, 11009, 10950, 10871, 10824,
10577, 10527, 10475, 10421, 10358, 10295, 10104, 9914, 9620, 9326,
5113, 5113, 4954, 4804, 4761, 4717, 4368, 4018
]
}, {
name: 'USSR/Russia',
data: [null, null, null, null, null, null, null, null, null, null,
5, 25, 50, 120, 150, 200, 426, 660, 869, 1060,
1605, 2471, 3322, 4238, 5221, 6129, 7089, 8339, 9399, 10538,
11643, 13092, 14478, 15915, 17385, 19055, 21205, 23044, 25393, 27935,
30062, 32049, 33952, 35804, 37431, 39197, 45000, 43000, 41000, 39000,
37000, 35000, 33000, 31000, 29000, 27000, 25000, 24000, 23000, 22000,
21000, 20000, 19000, 18000, 18000, 17000, 16000, 15537, 14162, 12787,
12600, 11400, 5500, 4512, 4502, 4502, 4500, 4500
]
}]
});
如何将我的数据放入此示例中?
最佳答案
在您提供的示例中,使用了 pointStart
和 formatter
作为轴标签,这导致数据以相等的时间间隔(每一年)分布。
在您的情况下,如果时间间隔不相等,您应该以毫秒为单位提供 x
值 - Highcharts 所需的格式。
var data1 = [{
x: '12/29/2014',
y: 1853
}, {
x: '01/05/2015',
y: 5087
}, {
x: '01/26/2015',
y: 3078
}];
data1.forEach(function(el, i) {
data1[i].x = new Date(el.x).getTime();
});
关于javascript - Highcharts:如何在 x 轴上绘制日期字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53761603/