最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How can i change text of legend in c3 pie chart - Stack Overflow

programmeradmin4浏览0评论

How can I change the Text of legend of pie chart. I am using c3 charts in my php page. I have already read the documentation of c3 charts but no luck.

Currently i am using this code it show legend for true but I not able to change the text I have tried this.

var chart = c3.generate({
        bindto: '#container',
        padding: {
                  top: 10,
                  right: 0,
                  bottom: 10,
                  left: 0,
            },
        data: {
            columns: [<?php echo $pieChartDataString; ?>],
            type : 'pie',
            labels: true
        },
        legend: {
                show: true,
                position: 'upper-center'
                format: {
                        title: function () { return "Legend title"; },
                        name : function () { return "Legend name"; },
                        value: function () { return "Legend value";}
                        }
                }

   //But these legend values or not showing 

    });

It's not showing my legend values its always shows only columns as legend.

Is there any way that I can change the legend values.

How can I change the Text of legend of pie chart. I am using c3 charts in my php page. I have already read the documentation of c3 charts but no luck.

Currently i am using this code it show legend for true but I not able to change the text I have tried this.

var chart = c3.generate({
        bindto: '#container',
        padding: {
                  top: 10,
                  right: 0,
                  bottom: 10,
                  left: 0,
            },
        data: {
            columns: [<?php echo $pieChartDataString; ?>],
            type : 'pie',
            labels: true
        },
        legend: {
                show: true,
                position: 'upper-center'
                format: {
                        title: function () { return "Legend title"; },
                        name : function () { return "Legend name"; },
                        value: function () { return "Legend value";}
                        }
                }

   //But these legend values or not showing 

    });

It's not showing my legend values its always shows only columns as legend.

Is there any way that I can change the legend values.

Share Improve this question edited Feb 19, 2017 at 18:25 Philip Kirkbride 22.9k39 gold badges130 silver badges235 bronze badges asked May 12, 2015 at 12:57 Sunil PachlangiaSunil Pachlangia 2,0713 gold badges17 silver badges26 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 15

You haven't provided the data that gets outputted from your php, so it's hard to say.

But the first item in each of the columns array determines the name that goes in the legend. So:

columns: [
    ['this is legend 1', 30],
    ['put your value here', 120], 
]

would result in the legend labels being "this is legend 1" and "put your value here".

Here's a fiddle: http://jsfiddle.net/jrdsxvys/9/

Edit... Another option is to use the names property, as done here: http://jsfiddle.net/jrdsxvys/40/

data: {
    columns: [
      ['d1', 30],
      ['d2', 120]
    ],
    type: 'pie',
    labels: true,
    names: {
      d1: 'some name here',
      d2: 'another name'
    }
}

@agpt Yes. The names property is a good way to go generally because the first property of the columns data array eg 'd1' above is used when doing things like having multiple types on charts. eg for a bar and line combination using types instead of type: 'pie':

columns: [
   ['bar_1', 3, 8, 6],
   ['bar_2', 4, 0, 7],
   ['bar_3', 2, 3, 0] 
],

types: {
  bar_1: 'bar',
  bar_2: 'line',
  bar_3: 'bar'
},

names : {
      bar_1: 'Initial',
      bar_2: '3 month',
      bar_3: '6 month'                
}

So, using the names property allows you to use more 'dynamic' property names and be consistent throughout the config.

发布评论

评论列表(0)

  1. 暂无评论