高图表,检测点是否在堆栈中的第一个
Highcharts, detect if point is first in stack
所以我有一个高图表,我想只在每个堆栈的第一个点上显示数据标签(即 0 点在哪里)
我的配置如下所示:
{
chart: {type: 'bar'},
plotOptions: {
series: {
stacking: 'percent',
dataLabels: {
enabled: true,
allowOverlap: true,
formatter: function () {
if (pointIsFirstInStack(this)) {
return labelFunction(this);
}
return '';
}
}
}
},
series: [{
name: 'Available',
data: [
{x: 'Event1', y: 18},
{x: 'Event2', y: 20}
]
}, {
name: 'Purchased',
data: [
{x: 'Event1', y: 23},
{x: 'Event2', y: 40}
]
}]
}
但是我很难实现pointIsFirstInStack
功能,有什么想法吗?
问候
埃纳尔
JSFiddle来说明我的图表:http://jsfiddle.net/qam37suh/
编辑:在配置示例中添加了系列和堆叠edit2:添加了 JSFiddle
您可以检查系列索引。
如果你总是要有两个系列,你可以这样检查它:
formatter: function(){
return this.series.index == 1 ? this.x : null;
}
例:
- http://jsfiddle.net/jlbriggs/jL6zrt7d/
默认情况下,Highcharts 反向堆叠序列,因此索引 0 堆叠在顶部。
如果要有一个动态的序列数,你可以先添加对序列数的检查,以便你仍然检查最后一个序列:
formatter: function(){
var len = this.series.chart.series.length -1;
return this.series.index == len ? this.x : null;
}
例:
- http://jsfiddle.net/jlbriggs/jL6zrt7d/1/
(您也可以在yAxis
上设置reversedStacks: false
,而只是检查index == 0
例:
- http://jsfiddle.net/jlbriggs/jL6zrt7d/3/
)
或者,如果您的目标是将类别放在系列内部而不是外部,则可以移动它们:
xAxis: {
categories: ['Event1', 'Event2'],
labels: {
x: 60,
style: {
fontWeight: 'bold',
color: 'rgba(255,255,255,0.75)'
}
}
}
例:
- http://jsfiddle.net/jlbriggs/jL6zrt7d/2/
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - JS在隐藏未定义的值后仅从数组中返回第一个id的值
- 高图表,检测点是否在堆栈中的第一个
- json结果显示第一个值
- 为了研究节点并制作好产品,哪个技术堆栈(模块、框架)更适合第一个node.js项目