我有一个柱形图,其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}]}]
});
我可以对我的代码做些什么来解决这个问题?
答案 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)
我猜这是一个错误;我会尝试提交错误报告。