如何在Google Charts轴中仅显示特定值?

时间:2016-07-24 19:31:20

标签: javascript charts google-visualization

所以我有一张图表,里面有很多日期。是否有可能只显示某些标题。例如,他们之间的第一个,最后一个和每个5个?

chart

1 个答案:

答案 0 :(得分:3)

您可以使用ticks configuration option设置自定义轴标签

要使用数据中的值,请使用DataTable上的getValue方法 getValue有两个论点,row& column

行和列从零开始,每个行中的第一个是0
data.getValue(0, 0)

要获取第一列中的最后一个值,请使用getNumberOfRows() - 1
data.getValue(data.getNumberOfRows() - 1, 0)

获取每个第五个元素,使用模数运算符%
请记住,这将包括第一个元素,
可能是最后一个,取决于行数......

// add every fifth
var tickMarks = [];
for (var i = 0; i < data.getNumberOfRows(); i++) {
  if (i % 5 === 0) {
    tickMarks.push(data.getValue(i, 0));
  }
}

请参阅以下工作代码段,该代码段仅添加第一个和最后一个...

google.charts.load('current', {
  callback: function () {
    var data = new google.visualization.DataTable();
    data.addColumn('date', 'Date');
    data.addColumn('number', 'Units');
    data.addRows([
      [new Date(2016,0,1), 100],
      [new Date(2016,0,3), 120],
      [new Date(2016,0,30), 110],
      [new Date(2016,1,1), 170],
      [new Date(2016,1,10), 180],
      [new Date(2016,1,25), 110],
      [new Date(2016,2,1), 170],
      [new Date(2016,2,14), 171],
      [new Date(2016,2,20), 172],
      [new Date(2016,3,12), 173],
      [new Date(2016,3,16), 174],
      [new Date(2016,3,19), 175],
      [new Date(2016,4,12), 176],
      [new Date(2016,4,16), 177],
      [new Date(2016,4,19), 178],
      [new Date(2016,5,12), 179],
      [new Date(2016,5,16), 180],
      [new Date(2016,5,19), 181],
      [new Date(2016,6,12), 190],
      [new Date(2016,6,16), 192],
      [new Date(2016,6,19), 196],
      [new Date(2016,6,24), 192],
      [new Date(2016,7,12), 190],
      [new Date(2016,7,16), 192],
      [new Date(2016,7,19), 196]
    ]);

    var tickMarks = [];

    //add first
    tickMarks.push(data.getValue(0, 0));

    //add last
    tickMarks.push(data.getValue(data.getNumberOfRows() - 1, 0));

    var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
    chart.draw(data, {
      hAxis: {
        format: 'M/d/yy',
        ticks: tickMarks
      }
    });
  },
  packages: ['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>