按年份显示谷歌图表日历 DESC

Posted

技术标签:

【中文标题】按年份显示谷歌图表日历 DESC【英文标题】:Show google chart calendar by year DESC 【发布时间】:2015-09-01 08:06:23 【问题描述】:

我正在使用 Google 日历图表,我想先显示 2015 年的图表,然后再显示 2014 年、2013 年等。

在来自 google 的示例中:https://developers.google.com/chart/interactive/docs/gallery/calendar 没有选项可以执行此操作,即使我按该顺序放置数据。

如何做到这一点?谢谢。

【问题讨论】:

也许您可以绘制三个不同的图表,每个图表都有一个 DataView,将每个图表隔离到一年,然后以相反的顺序排列 3 个图表。 我试图避免这种情况。不过,谢谢你的回复, 【参考方案1】:

这并不是一个理想的解决方案,但如果您有兴趣,如果您愿意在数据中反转年份值,则可以手动反转图表中的年份值。像这样:

google.load("visualization", "1.1", 
  packages: ["calendar"]
);

google.setOnLoadCallback(drawChart);

function drawChart() 

  var dataTable = new google.visualization.DataTable();
  dataTable.addColumn(type: 'date');
  dataTable.addColumn(type: 'number');

  dataTable.addRows([
    [new Date(2012, 1, 1), 1],
    [new Date(2013, 1, 1), 2],
    [new Date(2014, 1, 1), 3],
    [new Date(2015, 1, 1), 4]
  ]);

  var chart = new google.visualization.Calendar(document.getElementById('calendar_basic'));
  var options = ;

  google.visualization.events.addListener(chart, 'ready', swapYears);
  chart.draw(dataTable, options);


// important code, this would be simpler w/ jQuery but here's pure JS
function swapYears() 
  var yearTexts = document.querySelectorAll('[font-size="50"]');

  var years = [];
  yearTexts.forEach(function(text) 
    years.push(text.innerhtml);
  );
  years.reverse();

  for (var i = 0; i < yearTexts.length; i++) 
    yearTexts[i].innerHTML = years[i];
  

JSFiddle

输出:

【讨论】:

这会交换年份标签,但所有内容都会保留。 是的,您还必须反转数据中的年份。 正如所指出的,这个解决方案根本不起作用,只会交换多年来的标签! 正如我清楚地说的,这是一个表面上的修复——你必须更新你的数据以匹配显示。这是我知道的解决此问题的唯一解决方法。

以上是关于按年份显示谷歌图表日历 DESC的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 日历视图中首先显示年份选择

仅显示月份和年份的 Django DateField 日历?

java日历显示年份月份

cal - 显示一个日历

s-s-rS 按年份组总计排序

Linux之cal命令