列按组堆叠图表

时间:2013-10-21 09:38:37

标签: google-visualization

我有一个柱形图,显示当前和前几年的功耗。现在这种消耗来自不同的来源,所以我想在显示堆积值的多个列中绘制这些值。

我正在使用谷歌图表,但在options数组中将isStacked参数设置为true只会堆叠特定行的每个值。我想要实现的是这样的:

enter image description here

即具有多个堆叠列的行。这甚至可以使用Google Chart API吗?

1 个答案:

答案 0 :(得分:2)

这对于kludge来说是可行的:

Kludged Graph

function drawVisualization() {
  // Create and populate the data table.
  var data = google.visualization.arrayToDataTable([
    ['Country', 'Cars', 'Trucks'],
    ['', null, null],
    ['US', 15, 15],
    ['Canada', 17, 17],
    ['Europe', 13, 13],
    ['Mexico', 16, 16],
    ['Asia', 20, 20],
    ['', null, null],
    ['US', 15, 15],
    ['Canada', 17, 17],
    ['Europe', 13, 13],
    ['Mexico', 16, 16],
    ['Asia', 20, 20],
    ['', null, null],
    ['US', 15, 15],
    ['Canada', 17, 17],
    ['Europe', 13, 13],
    ['Mexico', 16, 16],
    ['Asia', 20, 20],
    ['', null, null],
    ['US', 15, 15],
    ['Canada', 17, 17],
    ['Europe', 13, 13],
    ['Mexico', 16, 16],
    ['Asia', 20, 20],
    ['', null, null],
  ]);

  // Create and draw the visualization.
  new google.visualization.ColumnChart(document.getElementById('visualization')).
      draw(data,
           {isStacked:true, width:800, hAxis: {showTextEvery:1, slantedText:true}}
      );
}

这可能不是一个好方法。基本上,您试图让单个图表显示太多信息,并且将您的数据拆分为多个图表会好得多。例如,您可以使用domain roles,或者您可以使用折线图来比较卡车和汽车之间的差异(由于基线不同,您目前无法做到这一点)。您还可以将汽车或卡车上的不同国家作为标准柱形图(未堆叠)进行比较。您可以使用chart interaction来允许用户选择他们想要查看的数据。看起来您正在尝试重新创建一个不与交互式技术交互的现有Excel图表,因此最好的方法是重新考虑应该如何使用它,因为技术的转变可以进行交互。