用谷歌地图设置谷歌列图表高度

时间:2016-02-24 08:43:34

标签: google-maps google-visualization

我必须使用谷歌地图设置谷歌列图表高度。根据人体比率显示图表。我可以区分男女类别。但人口明智地必须改变图表的高度。

var data = google.visualization.arrayToDataTable([
[ '村名', '男性',{ role: "style" }, '女性', { role: "style" } ],  
[関本村,3,2],
[下長竹村,152,70],
[中里村,30,35],
[永塚村,3,2],
[落幡村,7,1],
[関本村,3,2],
]);
var options = {
        width:300,
        height:200,
        backgroundColor: 'transparent',
        colors: ['#58ACFA','#FFC0CB'],
        legend: {position: 'none', textStyle: {color: 'white', fontSize: 12}},
        bar: { groupWidth: '5%' },
        baselineColor: 'transparent',
        vAxis: { gridlines: { count: 0, color: 'transparent' }, },
        hAxis: { textPosition: 'bottom',textStyle: {color: 'white', fontSize: 15}},
        isStacked: true,
  };

高度:200显示图表高度相同。

enter image description here

必须显示每个图形的不同高度..任何想法??

1 个答案:

答案 0 :(得分:1)

听起来你需要根据每行的总体数来计算相对大小。

您可以使用加权平均值,然后将其乘以所有图表的总大小。

在这里,我使用500.但是,您会注意到最小和最大人口之间的巨大差异。不确定图表会有多好,8像素高...

您可以使用某种倍增器来使它们更接近。只想展示一种可能性......



google.charts.load('current', {
  packages: ['corechart'],
  callback: drawChart
});

function drawChart() {
  var popSize;
  var sizeArray = [];
  var showResult;
  var tempDiv;
  var totalSize = 500;
  var total = 0;

  var data = google.visualization.arrayToDataTable([
    ['??', '??','??'],
    ['???',3,2],
    ['????',152,70],
    ['???',30,35],
    ['???',3,2],
    ['???',7,1],
    ['???',3,2],
  ]);


  for (var i = 0; i < data.getNumberOfRows(); i++) {
    popSize = data.getValue(i, 1) + data.getValue(i, 2);
    sizeArray.push(popSize);
    total += popSize;
  }

  showResult = document.getElementById('displaySizes');
  for (var i = 0; i < sizeArray.length; i++) {
    sizeArray[i] = (sizeArray[i] / total) * totalSize;
                                                   
    // example purposes only
    tempDiv = showResult.appendChild(document.createElement('DIV'));
    tempDiv.innerHTML = sizeArray[i].toFixed(2);
  }
}
&#13;
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="displaySizes"></div>
&#13;
&#13;
&#13;

然后在您的选项中使用sizeArray ...

var options = {
  width: 300,
  height: sizeArray[i],
  ...