Javascript 如何访问';这';highcharts的绘图选项中的字段
我正在努力实现两件事:Javascript 如何访问';这';highcharts的绘图选项中的字段,javascript,highcharts,Javascript,Highcharts,我正在努力实现两件事: 根据highcharts中柱形图的数据点应用绿色或红色。假设列大于50,则边框为绿色,否则为红色 我想在一些图表中放置一个图标(如果图标不可能,至少一个文本),基于它们是否具有某些属性 我正努力做到以下几点: plotOptions:{ column:{ borderColor: this.y > 50 ? 'green' : console.log(this), dataLabels: {
plotOptions:{
column:{
borderColor: this.y > 50 ? 'green' : console.log(this),
dataLabels: {
format: this.prop : 'i': '', //will put 'i' as icon
enabled: true,
align: 'top',
color: '#fff',
inside: true
}
},
},
我的条形图系列是:
series: [{
name: 'Defect per sprint',
data: [0, 0, 0, 2, 10, 2, 5, 3]
}]
如果我将borderColor与series一起保留,它将应用于所有列
但“this”实例似乎没有提供plotOptions。所以上面的代码不起作用。如何实现上述目标???我不知道如何在图表创建中实现这一点。但是,您可以在创建图表后在序列数组上循环以更新每列的边框颜色。在循环中,检查列值是否大于50后,使用update
方法。样本如下:
chart.series[i].update({borderColor: '#00FF00'})
2) 我已经有一段时间没有使用Highcharts了,但下面的方法曾经奏效:定义一个格式化程序
函数,而不是格式化程序
dataLabels: {
formatter: function () {return this.prop ? 'i' : ''}, //will put 'i' as icon
...
}
我会通过预处理数据来做到这一点 您可以在数据数组中循环并检查任何值,并相应地应用任何级别的格式设置 示例:
var data = [1, 2, 3, 5, 9, 8, 7, 4, 5, 6, 9, 7, 5, 3, 6, 9, 7, 5, 9],
processedData = [];
$.each(data, function(i, point) {
processedData.push(
(
point < 6 ? {
"y": point,
"color": "rgba(204,0,0,0.75)",
"dataLabels": {
"enabled": true
}
} : point
)
)
});
var数据=[1,2,3,5,9,8,7,4,5,6,9,7,5,3,6,9,7,5,5,9],
processedData=[];
$。每个(数据、函数(i、点){
processedData.push(
(
点<6{
“y”:点,
“颜色”:“rgba(204,0,0,0.75)”,
“数据标签”:{
“已启用”:真
}
}:点
)
)
});
这将在数组中循环,检查小于6的值-如果找到,将对点应用不同的颜色,并启用数据标签,否则,只将点作为单个值添加,图表配置将确定其颜色和其他属性
在图表配置中,指定dataLabels
属性的详细信息,并设置enabled:false
,以便它们仅用于已启用它们的点
小提琴:
将尝试并更新…顺便说一句,我建议通过预处理数据来解决我的问题。在数据数组中循环,如果一个点符合条件,则在数据的point对象中设置颜色并启用datalabel。这很有效。但是我可以将这些标签放在列的左上角吗?看起来像
align:top
什么都不做。使用类似于y:10
的东西是可行的,但是需要为每个条计算y
值。是否有出路align
是水平的。您需要垂直对齐: