日期轴不起作用的柱形图

时间:2012-01-18 19:37:53

标签: google-visualization

我有一个柱形图,其x轴值是一个日期。这个图表今天早上起作用但突然断开并显示“不支持带有值域轴的条形系列”。作为错误消息。该网站尚未在几周内更新。

我的DataTable构造代码如下所示:

var data= new google.visualization.DataTable({
        "cols":[{"label":"Date","type":"date"},{"label":"New Users","type":"number"}],
        "rows":[{"c":[{"v":new Date(1325656800000),"f":null},{"v":1355,"f":null}]}]
    });

我可以对我的代码做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:10)

这不是一个错误。 Google Visualization API已更改。

http://code.google.com/apis/chart/interactive/docs/customizing_axes.html#Help他们发布了一些解决此问题的方法。使用选项:

strictFirstColumnType: false

只能用作临时解决方案。谷歌说:

  

但是,请注意,此选项仅在有限时间内可用,并且将在不久的将来删除。

建议的解决方案是将x轴上的日期字段更改为字符串。我在向DateTable对象添加值之前使用formatter实现了这一点。

var formatterMoney = new google.visualization.NumberFormat({suffix: ' zł', decimalSymbol: ',', groupingSymbol: ' '});  
var formatterDate = new google.visualization.DateFormat({pattern: 'dd.MM.yyyy'});

var data = new google.visualization.DataTable();

data.addColumn('string', 'order date'); //used to be date field here
data.addColumn('number', 'total amount');
data.addRow([formatterDate.formatValue(new Date('2011-12-20')),971793.93]); //used to be Date object, now is Date formated as String
data.addRow([formatterDate.formatValue(new Date('2011-11-30')),1.0]);
data.addRow([formatterDate.formatValue(new Date('2011-11-17')),1.0]);
data.addRow([formatterDate.formatValue(new Date('2011-10-27')),1.72]);
data.addRow([formatterDate.formatValue(new Date('2011-10-26')),10.27]);

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
formatterMoney.format(data, 1);
chart.draw(data, {width: window.width, height: 400, hAxis: {direction: -1}});

答案 1 :(得分:3)

问题在于日期字段。我已经将日期字段转换为String,现在我正在使用String。如果您使用格式化程序,可以在将值提供给DataTable之前格式化值:

formatter.formatValue(date)

我猜这是一个错误;我会尝试提交错误报告。