9

我正在使用 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,
  }
 }
},
4

5 回答 5

11

尝试:

fillColor: a==1 ? "#ff0000" : "#00ff00"

等等

于 2012-10-25T11:49:05.510 回答
6

您还使用区域:

$(function () {
    $('#container').highcharts({
        series: [{
            data: [-10, -5, 0, 5, 10, 15, 10, 10, 5, 0, -5],
            zones: [
              {
                value: 0,
                color: '#f7a35c'
              }, 
              {
                color: '#90ed7d'
              }
            ]
        }]
    });
});

在 jsfiddle.net 中尝试

于 2016-01-07T10:59:40.350 回答
3

如何从图表中删除逻辑并仅将其用于显示数据?

var a = 1,
    color = a ? 'red' : 'green';

plotOptions: {
     series: {
         marker: {
             fillColor: color,
             lineWidth: 2,
         }
     }
}
于 2012-10-25T16:12:43.790 回答
1

扩展Asad Saeeduddin 的回答

我在甜甜圈饼图中使用 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;
           }
        }
    }
于 2015-12-22T21:33:37.490 回答
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',
          }
        })
于 2021-05-11T20:47:23.233 回答