highcharts - 空数据的 Highchart Persist bar 宽度
问题描述
我有一个包含两个系列的简单 HighStock 图表,如下图所示:
因此,在功能方面,HighChart 会在添加新系列后立即减小条形的宽度。
但是当特定点只有一个系列的数据时,我不想减小条的宽度。(此处日期为 5 月 17 日)
这是我创建的小提琴。尝试隐藏其中一个系列并查看栏的宽度。当两个系列都可见时,应为“17. May”上的栏应用相同的宽度,因为该日期只有一个系列的数据。如下所示:
我使用了以下代码:
Highcharts.stockChart('container', {
chart: {
alignTicks: false
},
legend: {
enabled: true
},
rangeSelector: {
selected: 1
},
title: {
text: 'AAPL Stock Volume'
},
"series":[
{
"name":"Key Rate 319",
"type":"column",
"data":[{x: 1147651200000, y: 1}, {x: 1147737600000, y: 7}, {x: 1147824000000, y: 5}, {x: 1147910400000, y: 4}],
"marker":{"enabled":false},
"shadow":false,
"color":"blue"
},
{
"name":"Key Rate 321",
"type":"column",
"data":[{x: 1147651200000, y: 4}, {x: 1147737600000, y: 2}, {x: 1147824000000, y: null}, {x: 1147910400000, y: 1}],
"color":"green"
}]
});
我怎样才能做到这一点?
解决方案
Series 有两个属性用于控制点的范围和位置: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/
推荐阅读
- c++ - C++ 中的 NAPI 本机模块正在部分执行(包括 std::thread)
- mongodb - 在 mongo 聚合中包含当前日期
- python - +[AVCaptureDevice initialize] 可能在调用 fork() 时已在另一个线程中进行
- google-chrome - 如何使用 selenium 在无头 chrome 中取消设置 navigator.webdriver?
- python - BeautifulSoup 返回 ConnectionError
- python - 如何在 Keras 中有效地处理重复的共享层
- c# - 在 PHP 站点中嵌入 Razor 页面不保存 cookie - 身份不起作用
- reactjs - Redux 商店不更新
- r - 在 R 中读取 .h5 文件
- c - 无法从 .csv 文件中检索数据