C# axis#0的数据列在使用ASP.NET和SQL Server的Google图表中不能是字符串类型?
我试图在Google图表中显示一些数据,但出现以下错误: 轴0的数据列不能是字符串类型 这是我第一次使用谷歌图表,我正在尝试使用ASP.NETWebForms和SQLServer。我有一个WebMethod,它以与GoogleChart绑定的数组格式从数据库返回数据 以下是脚本的代码:C# axis#0的数据列在使用ASP.NET和SQL Server的Google图表中不能是字符串类型?,c#,sql-server,charts,webforms,google-visualization,C#,Sql Server,Charts,Webforms,Google Visualization,我试图在Google图表中显示一些数据,但出现以下错误: 轴0的数据列不能是字符串类型 这是我第一次使用谷歌图表,我正在尝试使用ASP.NETWebForms和SQLServer。我有一个WebMethod,它以与GoogleChart绑定的数组格式从数据库返回数据 以下是脚本的代码: <script> var chartData; // globar variable for hold chart data google.load("visualization",
<script>
var chartData; // globar variable for hold chart data
google.load("visualization", "1", { packages: ["corechart"] });
// Here We will fill chartData
$(document).ready(function () {
$.ajax({
url: "../../Pages/Test.aspx/GetSentimentData",
data: "",
dataType: "json",
type: "POST",
contentType: "application/json; chartset=utf-8",
success: function (data) {
chartData = data.d;
},
error: function () {
alert("Error loading data! Please try again.");
}
}).done(function () {
// after complete loading data
google.setOnLoadCallback(drawChart3);
drawChart3();
});
});
function drawChart3() {
var data = google.visualization.arrayToDataTable(chartData);
var options = {
title: "Distribution of Sentiment Analysis Results",
hAxis: { title: 'University'},
vAxis: { title: 'Number of Tweets' },
pointSize: 5
};
var columnChart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
columnChart.draw(data, options);
}
</script>
var chartData;//保留图表数据的globar变量
load(“可视化”、“1”、{packages:[“corechart”]});
//这里我们将填充图表数据
$(文档).ready(函数(){
$.ajax({
url:“../Pages/Test.aspx/GetMotionData”,
数据:“,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;图表集=utf-8”,
成功:功能(数据){
chartData=data.d;
},
错误:函数(){
警报(“加载数据时出错!请重试”);
}
}).done(函数(){
//完成加载数据后
setOnLoadCallback(drawChart3);
图纸3();
});
});
函数drawChart3(){
var data=google.visualization.arrayToDataTable(chartData);
变量选项={
标题:“情绪分析结果的分布”,
哈克斯:{头衔:'大学'},
vAxis:{title:'Number of Tweets'},
点数:5
};
var columnChart=new google.visualization.columnChart(document.getElementById('chart_div'));
绘制(数据、选项);
}
那么您能告诉我如何创建一个Google柱形图,其中x轴上的每个项目都有三个系列吗?一旦建立了数据表,
使用数据视图为每个唯一的情感标签创建一个新列 然后聚合数据视图以删除重复项并合计每列 请参阅以下代码段
function drawChart3() {
var data = google.visualization.arrayToDataTable(chartData);
// create data view
var view = new google.visualization.DataView(data);
// init column arrays
var aggColumns = [];
var viewColumns = [0];
// build view & agg column for each sentiment label
data.getDistinctValues(1).forEach(function (label, index) {
// add view column
viewColumns.push({
calc: function (dt, row) {
if (dt.getValue(row, 1) === label) {
return dt.getValue(row, 2);
}
return null;
},
label: label,
type: 'number'
});
// add agg column
aggColumns.push({
aggregation: google.visualization.data.sum,
column: index + 1,
label: label,
type: 'number'
});
});
// set view columns
view.setColumns(viewColumns);
// agg view by university
var group = google.visualization.data.group(
view,
[0],
aggColumns
);
var options = {
title: "Distribution of Stanford CoreNLP Sentiment Analysis Results by University",
hAxis: { title: 'University'},
vAxis: { title: 'Number of Tweets' },
pointSize: 5
};
var columnChart = new google.visualization.ColumnChart(document.getElementById('stanfrod_sentiment_by_uni_chart_div'));
columnChart.draw(group, options); // <-- use agg data table
}
同时 您不应该多次调用
setOnLoadCallback
您可以依靠google的回调来知道文档何时准备就绪
无需-->$(文档)。准备就绪
调用回调后,您可以根据需要绘制任意多个图表
加载google,然后使用ajax获取数据,请参见此处的设置-->参见此处答案中的最后一次编辑-->@WhiteHat,谢谢您的帮助。然而,您提到的答案是,有一个虚拟数据,而不是来自数据库的数据。事实上,我不知道如何根据这个参考来调整我的。你能根据我的密码帮我吗?谢谢你在这方面的帮助。我尝试了你的代码片段,但没有成功。没有显示任何图形或消息,我不知道为什么。您认为这是因为我仍在使用jsapi
?您希望如何与您共享此示例?你想让我发布sql脚本吗?请用-->console.log(JSON.stringify(chartData))的示例编辑这个问题代码>--和/或使用最新尝试更新问题--您是否检查了控制台错误?最后,我能够修复它。非常感谢你在这方面的帮助。
google.charts.load('current', {
callback: drawChart,
packages: ['corechart']
});