【问题标题】:I want google pie chart to show pieSliceText to be rounded whole number我希望谷歌饼图显示 pieSliceText 是四舍五入的整数
【发布时间】:2017-07-03 12:41:18
【问题描述】:

我正在使用谷歌饼图,我想显示圆形百分比值,但它没有显示出来。任何人,建议我一个显示四舍五入百分比值的想法。我的代码看起来像

 google.setOnLoadCallback(drawChart);
                    function drawChart() {
 var data = google.visualization.arrayToDataTable([
                            ['Members', 'Total Members'],
                            ['Members', 23],
                            ['Total Members', 41 - 23]
                        ]);
                    var options = {
                            width: 150,
                            height: 150,
                            chartArea: {
                                width: 150,
                                height: 150,
                                left: 10},
                            legend: {position: 'none'},
                            tooltip: {trigger: 'none'},
                            colors: ['#FEC240', '#FFFFFF'],
                            pieSliceText: 'percentage',
                            pieSliceTextStyle: {
                                bold: true,
                                fontSize: 16,
                                color: 'black'
                            },
                            enableInteractivity: false,
                            pieSliceBorderColor: "#DFE0E1"

                        };
var chart = new 
google.visualization.PieChart(document.getElementById('checkpie'));
chart.draw(data, options);

<div id="checkpie" ></div>

【问题讨论】:

    标签: charts google-visualization pie-chart


    【解决方案1】:

    没有用于设置切片上显示的百分比格式的标准选项

    因此,需要手动计算百分比,
    使用选项 --> pieSliceText: 'value' -- 在切片上显示格式化值

    请参阅以下工作 sn-p...

    google.charts.load('current', {
      callback: drawChart,
      packages: ['corechart']
    });
    
    function drawChart() {
      var data = google.visualization.arrayToDataTable([
        ['Members', 'Total Members'],
        ['Members', 23],
        ['Total Members', 41 - 23]
      ]);
    
      // find total to calc % manually
      var totalData = google.visualization.data.group(
        data,
        [{column: 0, modifier: function () {return 'total'}, type:'string'}],
        [{column: 1, aggregation: google.visualization.data.sum, type: 'number'}]
      );
    
      // number formatter
      var formatPercent = new google.visualization.NumberFormat({
        pattern: '0%'
      });
    
      // set formatted value for each row
      for (var i = 0; i < data.getNumberOfRows(); i++) {
        var calcPercent = data.getValue(i, 1) / totalData.getValue(0, 1);
        data.setFormattedValue(i, 1, formatPercent.formatValue(calcPercent));
      }
      
      var options = {
        width: 150,
        height: 150,
        chartArea: {
          width: 150,
          height: 150,
          left: 10
        },
        legend: {position: 'none'},
        tooltip: {trigger: 'none'},
        colors: ['#FEC240', '#FFFFFF'],
        pieSliceText: 'value',  // <-- show formatted value on slices
        pieSliceTextStyle: {
          bold: true,
          fontSize: 16,
          color: 'black'
        },
        enableInteractivity: false,
        pieSliceBorderColor: "#DFE0E1"
      };
      var chart = new google.visualization.PieChart(document.getElementById('checkpie'));
      chart.draw(data, options);
    }
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="checkpie"></div>

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多