轴#0的数据列不能是字符串类型-谷歌图表
Data column(s) for axis #0 cannot be of type string - Google Charts
我试图在谷歌图表中显示一些数据,但得到这个错误:
Data column(s) for axis #0 cannot be of type string..
这个类有两个属性:
public class GAStatistics
{
public string Date { get; set; }
public string Visitors { get; set; }
}
我给它传递了一个来自控制器的属性列表:
public class GAStatisticsController : Controller
{
//GET: /ShopStatistics/
public ActionResult GetData()
{
return Json(CreateCompaniesList(), JsonRequestBehavior.AllowGet);
}
private IEnumerable<GAStatistics> CreateCompaniesList()
{
List<GAStatistics> ListGaVisitors = new List<GAStatistics>();
foreach (var row in d.Rows)
{
GAStatistics GaVisits = new GAStatistics(row[0], row[1]);
ListGaVisitors.Add(GaVisits);
}
return ListGaVisitors;
}
}
将列表从控制器传递给这个视图:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
google.load("visualization", "1", { packages: ["treemap"] });
google.setOnLoadCallback(drawChart);
function drawChart() {
$.get('/GAStatistics/GetData', {},
function (data) {
var tdata = new google.visualization.DataTable();
tdata.addColumn('string', 'Date');
tdata.addColumn('string', 'Visitors');
for (var i = 0; i < data.length; i++) {
//tdata.addRow([data[i].Year, data[i].Salary, data[i].Expense]);
tdata.addRow([data[i].Date, data[i].Visitors]);
}
var options = {
title: "Expenses, salary For the current year"
};
var chart1 = new google.visualization.AreaChart(document.getElementById('chart_div1'));
chart1.draw(tdata, options);
});
}
</script>
任何想法?
我已经测试了你的例子,发现主要问题是因为第二列Visitors
应该是一个数字而不是字符串。
我已经替换了tdata.addColumn('number', 'Visitors');
行中的列类型,并在循环中添加了parseInt
:
tdata.addColumn('date', 'Date');
tdata.addColumn('number', 'Visitors');
// sample data: var data = [{ Date: "20140124", Visitors: "873" }, { Date: "20140125", Visitors: "875" }];
for (var i = 0; i < data.length; i++) {
var dateStr = data[i].Date.substr(0, 4) + "-" + data[i].Date.substr(4,2) + "-" + data[i].Date.substr(6,2);
tdata.addRow([new Date(dateStr), parseInt(data[i].Visitors)]);
}
第一列Date
也可以保持string
,但我将其类型替换为date
并添加了new Date
转换。
相关文章:
- 使用谷歌地图API nearBysearch与多种类型
- 未捕获的类型错误:无法读取属性'fitBounds'谷歌地图(markrWithlabel js)中未定
- 如何在谷歌电子表格脚本中测试范围参数的类型
- 谷歌图表 - 地理图表“不兼容的数据表:错误:未知地址类型
- 谷歌地图API多段线创建失败;未捕获类型错误:数字不是函数;
- 未捕获的类型错误:无法读取属性'长度'未定义的谷歌地图V3
- 如何在面板中添加在两种类型的谷歌图表之间切换的按钮
- 谷歌URL缩短器API-未压缩类型错误:未定义不是一个函数
- 谷歌翻译,输入类型='文本'中的占位符文本
- 我可以在ebay中使用谷歌网页字体api或任何类型的自定义字体吗
- 使用输入类型=“0”改变Circle谷歌地图的半径;“范围”;
- 谷歌地图api 3使用覆盖选择地点的类型
- 谷歌地图数据类型抛出类型错误:can't将未定义转换为对象
- 如何在谷歌电子表格中检查单元格的类型
- 谷歌地图Javascript V3未捕获类型错误:无法读取属性'offsetWidth'为null
- 谷歌地图api v3未捕获类型错误:无法读取属性'offsetWidth'为null
- 谷歌地图和谷歌地点库中不同地点类型的不同图像
- 谷歌地图Javascript API“;未捕获类型异常-未定义不是函数“;
- 如何从谷歌地图中的坐标(纬度,长)获取地点类型
- 轴#0的数据列不能是字符串类型-谷歌图表