我正在使用Highcharts,我想用不同的颜色填充折线图中的标记。例如:当变量“a”为1时,用红色填充标记,否则用绿色填充。有可能吗?
以下是代码:http://jsfiddle.net/EnyCJ/1/
我试图用格式化程序做到这一点,但它不起作用。有什么建议吗?
var a=1;
plotOptions: {
series: {
marker: {
fillColor: {
formatter: function () {
if (a == 1) {
return 'red'
} else {
return 'green'
}
}
},
lineWidth: 2,
}
}
},
答案 0 :(得分:7)
尝试:
fillColor: a==1 ? "#ff0000" : "#00ff00"
等
答案 1 :(得分:4)
您还可以使用区域:
$(function () {
$('#container').highcharts({
series: [{
data: [-10, -5, 0, 5, 10, 15, 10, 10, 5, 0, -5],
zones: [
{
value: 0,
color: '#f7a35c'
},
{
color: '#90ed7d'
}
]
}]
});
});
答案 2 :(得分:1)
如何从图表中删除逻辑并仅将其用于显示数据?
var a = 1,
color = a ? 'red' : 'green';
plotOptions: {
series: {
marker: {
fillColor: color,
lineWidth: 2,
}
}
}
答案 3 :(得分:0)
我在圆环饼图中使用dataLabels,并且建议的解决方案非常特定于单一情况。我想根据条件逻辑更改单个饼图切片的标签文本颜色,比较值。
只是分享因为我的搜索把我带到了这里。
data: outerData,
dataLabels: {
formatter:
function () {
if ((outerData[this.point.x].y > innerData[this.point.x].y) && (this.point.x != 0)) {
return this.y > 0.1 ? '<span style="fill: red;">' + this.point.name + ': ' + this.y + '% ' + '</span>' : null;
} else {
return this.y > 0.1 ? '<span style="fill: #006400;">' + this.point.name + ': ' + this.y + '% ' + '</span>' : null;
}
}
}
答案 4 :(得分:0)
我正在做这样的事情,我想我会用 2021 年的回复更新这篇文章。事实证明,在 Highcharts 中,您必须将数组输入数据,但它可以是具有与该点相关联的参数的对象数组。我试图使点填充与 y 轴的比例不同,如下所示:
tempScale(value: any) {
if(value > 32) {
return 'red'
}
else if(value > 31) {
return 'orange'
}
else if(value > 30) {
return 'yellow'
}
else if(value > 28) {
return 'green'
}
else if(value > 27) {
return 'blue'
}
else {
return '#99ffff'
}
}
我最终找到了这个 codepen,其中显示了一个示例,说明如何输入对象数组并使用键 y、颜色、标记和半径为数组中的每个项目提供属性。
{
y: 9,
color: 'green',
marker: {
radius: 10
}
}
在将它们推入数组之前,我最终组合了 2 并计算了它们的颜色,这对我的目的非常有用。
array.push({
y: item.attributes.Sal,
color: this.tempScale(item.attributes.Temp),
marker: {
lineWidth: 1,
lineColor: 'black',
}
})