C# axis#0的数据列在使用ASP.NET和SQL Server的Google图表中不能是字符串类型?

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",

我试图在Google图表中显示一些数据,但出现以下错误:

轴0的数据列不能是字符串类型

这是我第一次使用谷歌图表,我正在尝试使用ASP.NETWebForms和SQLServer。我有一个WebMethod,它以与GoogleChart绑定的数组格式从数据库返回数据

以下是脚本的代码:

<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']
});