在Highcharts中为每个栏添加不同的名称

时间:2016-01-22 16:33:00

标签: javascript highcharts highcharts-ng

如何重命名每个栏,我想要有不同的名字。总是它出现“bar1”,“bar2”等。这是该系列的名称。但我想让它出现在那些文本的位置,其他我想要自定义。这就是我做的。把不同的名字,如果有9个酒吧,我想把不同的名字放在酒吧,bar1,bar2,bar3,Bar4,Bar5,Bar6,Bar7,Bar8,Bar9。我不想重复 在我的例子中。

enter image description here

series: [{
  name: 'bar1',
  data: [1000, 950, 920, 0, 850],
  color: "#FF0000"
}, {
  name: 'bar2',
  data: [800, 770, 750, 0, 730],
  color: "#000000"

}, {
  name: 'bar3',
  data: [600, 540, 535, 500, 30],
  color: "#00FF00"

},
 {
  name: 'bar4',
  data: [28, 28, 28, 28, 28],
  color: "#00FF00"

}]

http://jsfiddle.net/05L1n3wb/

2 个答案:

答案 0 :(得分:1)

这可以通过将name: 'bar1'更改为您想要的内容来完成。如果您仍然需要series.name为'bar1',那么您应该更加关注数据模型。如果要根据series.name的内容更改显示的文本,可以使用标签格式化程序或dataLabel格式化程序来执行此操作。

答案 1 :(得分:0)

正如您在上一个答案中所述,您可以使用dataLabels格式化程序更改您为列显示的字符串:http://api.highcharts.com/highcharts#plotOptions.bar.dataLabels.formatter

您可以为点添加自定义参数,例如名称:

 series: [{
      name: 'bar1',
      data: [{
        y: 1000,
        name: 'bar1'
      }, {
        y: 950,
        name: 'bar5'
      }, {
        y: 920,
        name: 'bar9'
      }, {
        y: 0,
        name: 'bar13'
      }, {
        y: 850,
        name: 'bar17'
      }],
      color: "#FF0000"
    }]

在dataLabels格式化程序中,您可以显示以下参数:

  formatter: function() {
    var string = this.point.name + ' ';
    if (this.y <= 30) {
      string += this.y;
    }
    return string;
  }

例如: http://jsfiddle.net/05L1n3wb/2/