charts - 谷歌图表 : How do I change the order of pie chart slices?

标签 charts google-visualization

如何更改饼图切片生成的顺序?这是我的代码。

var DEFAULT_PIE_CHART_OPTIONS = {
        theme: 'material',
        titleTextStyle: { fontSize: 12 },
        is3D: false,
        pieSliceText: 'label',
        colors: ['#8E142E','#C3CA21','#8A972B','#6FF522','#167D13'],
        fontSize: 12,
        pieHole: 0.6,
        pieStartAngle: 180,
        height: 600,
        chartArea: { width: '100%', height: '100%', left: 0, top: 100 },
        legend: { position: 'top', maxLines: 1, textStyle: { fontSize: 12, bold: true, italic: false } }
    };
var chartOptions = DEFAULT_PIE_CHART_OPTIONS;
        chartOptions.colors = null;
        var chartOverallPmmLevelCalculated = new google.visualization.ChartWrapper({
            'chartType': 'PieChart',
            'containerId': 'chartOverallPmmLevelCalculatedHtml',
             options: chartOptions
        });
function drawPieChart() {
            var responseDataTable = levelTableChart.getDataTable();
            var chartDataTable = new google.visualization.DataTable();
            chartDataTable.addColumn('string', 'Fiscal');
            chartDataTable.addColumn('number', 'LEVEL');
            var chartDataTableRow = new Array();
            var rowCounter;
            var levelValue;
            for (rowCounter = 0; rowCounter < responseDataTable.getNumberOfRows() ; rowCounter++) {
                var seek = 0 * 1;
                levelValue = responseDataTable.getValue(rowCounter, 1);
                if (levelValue !== null) {
                    chartDataTableRow[seek++] = "LEVEL " + levelValue.toString();
                    chartDataTableRow[seek++] = responseDataTable.getValue(rowCounter, 2);
                } else {
                    chartDataTableRow[seek++] = null;
                    chartDataTableRow[seek++] = null;
                }
                chartDataTable.addRow(chartDataTableRow);
            }
            chartOverallPmmLevelCalculated.setDataTable(chartDataTable);
            chartOverallPmmLevelCalculated.draw();
        }

我附上了用随机 LEVEL 信息生成的饼图。我只需要在饼图切片中顺时针显示 LEVEL 0 到 LEVEL 3。

enter image description here

最佳答案

在绘制图表之前对 DataTable 进行排序

// sort data - first column
data.sort([{column: 0}]);

请参阅以下工作片段...

google.charts.load('current', {
  callback: function () {
    var data = google.visualization.arrayToDataTable([
      ['Fiscal', 'LEVEL'],
      ['LEVEL 3',     30],
      ['LEVEL 1',     12],
      ['LEVEL 2',     42],
      ['LEVEL 0',     8],
    ]);

    var chart = new google.visualization.ChartWrapper({
      chartType: 'PieChart',
      containerId: 'chart_div',
      dataTable: data,
      options: {
        theme: 'material',
        titleTextStyle: { fontSize: 12 },
        is3D: false,
        pieSliceText: 'label',
        fontSize: 12,
        pieHole: 0.6,
        pieStartAngle: 180,
        height: 600,
        chartArea: { width: '100%', height: '100%', left: 0, top: 100 },
        legend: { position: 'top', maxLines: 1, textStyle: { fontSize: 12, bold: true, italic: false } }
      }
    });

    // sort data - first column
    data.sort([{column: 0}]);

    chart.draw();
  },
  packages:['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>

关于charts - 谷歌图表 : How do I change the order of pie chart slices?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39201059/

相关文章:

Silverlight 4 工具包、图表和 lineSeries 为空

c# - .NET 图表控件 : How to use a LineAnnotation?

javascript - 在 highchart 中,Y 轴绘图线标签被 chop

javascript - 谷歌图表可视化仪表板数据源问题

javascript - 为 google.visualization.datatable 创建高级 KnockOut 绑定(bind)处理程序

javascript - 用于绘制图表的 Google Visualization 无法在外部 Java 脚本文件中工作

javascript - Google Charts 类别过滤器 - 隐藏 html 标签或将元素转换为链接

javascript - 如何使用 Plottable.js 创建饼图

css - Google 可视化表,如何使用 css 删除默认的双色调图像?

json - 如何避免使用 Perl JSON 模块在数字周围加上引号?