0
我正在尝试设置可变列宽度的柱状图。在一个系列中有不同的列宽似乎不可能,所以我为每个需要的宽度设置了多个系列,并将它们链接起来。Highcharts:链接系列的列位置不正确?
但我碰到的一个问题,说明如下:
http://jsfiddle.net/drmrbrewer/215tnLna/15/
我已经设置了数据,这样,不应该有任何的差距......竟然有上述jsfiddle中的差距。将鼠标悬停在每列上以查看该列的时间......列的右侧边缘应该放置在x轴上(因为pointPlacement设置为-0.5)。
但是,在指定时间右边缘对齐的唯一一列系列是最后一个(6小时跨度)。前两个向左移动。
我在做什么错?为什么会发生这种情况,以及如何设置,以便链接系列中的所有列显示在正确的位置?
谢谢。
的jsfiddle代码:
$(function() {
$('#container').highcharts({
title: {
text: 'Variable width columns'
},
xAxis: {
type: 'datetime',
tickInterval: 36e5,
labels: {
format: '{value:%H}'
}
},
legend: {
enabled: false
},
plotOptions: {
column: {
groupPadding: 0,
pointPadding: 0,
borderWidth: 0,
grouping: false,
pointPlacement: -0.5
}
},
series: [{
name: '1hr span',
type: 'column',
data: [{"x":1428048000000,"y":8.4},{"x":1428051600000,"y":9},{"x":1428055200000,"y":8.1},{"x":1428058800000,"y":6.6},{"x":1428062400000,"y":5}],
color: '#22CC00',
pointRange: 36e5
},{
name: '3hr span',
type: 'column',
data: [{"x":1428073200000,"y":4.9},{"x":1428084000000,"y":4},{"x":1428094800000,"y":3.4},{"x":1428105600000,"y":2.4}],
color: '#22CC00',
linkedTo: ':previous',
pointRange: 3 * 36e5
},{
name: '6hr span',
type: 'column',
data: [{"x":1428127200000,"y":6.9}],
color: '#22CC00',
linkedTo: ':previous',
pointRange: 6 * 36e5
}]
});
});
几乎通过试验和错误,我已经到了相同的解决方案 - 见http://jsfiddle.net/drmrbrewer/215tnLna/19/ - 在此的jsfiddle我已经包括了“工作“来展示我如何根据这个和更高系列的'pointRange'为每个系列计算'pointPlacement'。但它困扰着我,有一个巨大的差距,所以我走得更远,试图找出一个系统的方法来消除它......这是做到这一点的最好方法 - 见'min'和'max'的使用http://jsfiddle.net/drmrbrewer/215tnLna/23/。 – drmrbrewer 2015-04-03 10:53:07
但是我应该在我的“真实世界”代码中添加一下,我发现最左边的列(一个或两个)因为某些原因被隐藏,当使用上面的'min'和'max'来消除这个差距时。列有空间,但是它们是隐藏的。但是我需要确定是否在我的设置中隐藏了它们,这是因为在上面的jsfiddle中没有隐藏任何列。 – drmrbrewer 2015-04-03 10:55:38
很难说哪里是问题。也许老版本的Highcharts? – 2015-04-03 12:26:14