我有一个简单的HighStock图表,有两个系列,如下图所示:
https://stackblitz.com/edit/angular-segnwt
功能明智,只要添加新系列,HighChart就会减小条的宽度。
但是当我在特定点只有一个系列的数据时,我不想减小条的宽度。 (这里日期,5月17日)
这是我创建的。尝试隐藏其中一个系列并查看栏的宽度。应该对" 17上的条应用相同的宽度。可"当两个系列都可见时,因为该日期只有一个系列的数据。如下图所示:
我使用了以下代码:
vector_t.erase(std::remove_if(vector_t.begin(), vector_t.end(), [](const hello &h) { return h.x; }), vector_t.end());
我怎样才能做到这一点?
答案 0 :(得分:0)
系列有两个用于控制点的范围和位置的属性:pointRange
& pointPlacement
。他们适用于所有系列赛。点,不幸的是,不能应用于各个列。
解决方法强>
停用grouping
并重置pointPadding
& groupPadding
:
plotOptions: {
series: {
grouping: false,
pointPadding: 0,
groupPadding: 0
}
},
为每个点创建一个单独的系列,并应用适当的pointRange
& pointPadding
给他们。然后使用linkedTo
属性链接它们以模仿原始系列结构:
series: [{
name: 'First series',
color: '#bada55',
data: [
[0, 2]
],
pointRange: 0.4,
pointPlacement: -0.5
}, {
data: [
[1, 7]
],
linkedTo: ':previous',
color: '#bada55',
pointRange: 0.4,
pointPlacement: -0.5
}, {
data: [
[2, 5]
],
linkedTo: ':previous',
color: '#bada55',
//pointRange: 1, // by default
//pointPlacement: 0 // by default
}, {
data: [
[3, 4]
],
linkedTo: ':previous',
color: '#bada55',
pointRange: 0.4,
pointPlacement: -0.5
}, {
name: 'Second series',
data: [
[0, 1]
],
color: '#c0ffee',
pointRange: 0.4,
pointPlacement: 0.5
}, {
data: [
[1, 2]
],
linkedTo: ':previous',
color: '#c0ffee',
pointRange: 0.4,
pointPlacement: 0.5
}, {
data: [
[3, 2]
],
linkedTo: ':previous',
color: '#c0ffee',
pointRange: 0.4,
pointPlacement: 0.5
}]
现场演示: http://jsfiddle.net/BlackLabel/q7j4m8eb/
这种方法的缺点是必须明确定义每个点(系列)的颜色,并且数据结构看起来有点复杂。
上述所有选项均可在API中找到: https://api.highcharts.com/highcharts/