【问题标题】:How to show percentage in google BarChart?如何在谷歌条形图中显示百分比?
【发布时间】:2017-08-21 03:21:04
【问题描述】:

如何获取谷歌图表中的总数和百分比? 我只想获取google图表中的百分比和数字,有没有需要设置的选项?

google.charts.load('current', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback(drawBasic);

function drawBasic() {
	var data = google.visualization.arrayToDataTable([
		['City', '2010 Population',],
		['New York City, NY', 8175000],
		['Los Angeles, CA', 3792000],
		['Chicago, IL', 2695000],
		['Houston, TX', 2099000],
		['Philadelphia, PA', 1526000]
	]);
	var options = {
		title: 'Population of Largest U.S. Cities',
		chartArea: {width: '50%'},
	};
	var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
	chart.draw(data, options);
}
  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  <div id="chart_div"></div>
      

下面的示例输出:

【问题讨论】:

    标签: javascript charts google-visualization bar-chart


    【解决方案1】:

    使用group方法求总数

    var groupData = google.visualization.data.group(
      data,
      [{column: 0, modifier: function () {return 'total'}, type:'string'}],
      [{column: 1, aggregation: google.visualization.data.sum, type: 'number'}]
    );
    

    DataView 添加'annotation'

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

    google.charts.load('current', {
      callback: drawBasic,
      packages: ['corechart']
    });
    
    function drawBasic() {
      var data = google.visualization.arrayToDataTable([
        ['City', '2010 Population',],
        ['New York City, NY', 8175000],
        ['Los Angeles, CA', 3792000],
        ['Chicago, IL', 2695000],
        ['Houston, TX', 2099000],
        ['Philadelphia, PA', 1526000]
      ]);
    
      var groupData = google.visualization.data.group(
        data,
        [{column: 0, modifier: function () {return 'total'}, type:'string'}],
        [{column: 1, aggregation: google.visualization.data.sum, type: 'number'}]
      );
    
      var formatPercent = new google.visualization.NumberFormat({
        pattern: '#,##0.0%'
      });
    
      var formatShort = new google.visualization.NumberFormat({
        pattern: 'short'
      });
    
      var view = new google.visualization.DataView(data);
      view.setColumns([0, 1, {
        calc: function (dt, row) {
          var amount =  formatShort.formatValue(dt.getValue(row, 1));
          var percent = formatPercent.formatValue(dt.getValue(row, 1) / groupData.getValue(0, 1));
          return amount + ' (' + percent + ')';
        },
        type: 'string',
        role: 'annotation'
      }]);
    
      var options = {
        annotations: {
          alwaysOutside: true
        },
        title: 'Population of Largest U.S. Cities',
        chartArea: {width: '50%'},
      };
      var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
      chart.draw(view, options);
    }
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 2022-12-01
      • 2020-02-29
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-22
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多