谷歌图表显示错误的数据

时间:2015-05-25 22:50:00

标签: c# asp.net google-visualization

我在使用Google图表创建数据图表时遇到了一些问题,我不知道为什么我的图表会以这种方式显示?

enter image description here

正如您在图片中看到的那样,y值应该是2但是我得到3左右。什么可能导致这个问题?

这是我目前的代码:

private DataTable GetData()
{

    DataTable dt = new DataTable();

    string cmd = "SELECT TotalShipped, TotalOnTime, TotalOnTime / TotalShipped * 100 AS LISC" +
" FROM (SELECT COUNT(*) AS TotalShipped, SUM(CASE LISC WHEN 100 THEN 1.0 ELSE 0.0 END) AS TotalOnTime" +
                   " FROM dbo.tbl_LISC) AS t";

    SqlDataAdapter adp = new SqlDataAdapter(cmd, conn);

    adp.Fill(dt);

    return dt;

}

private void BindChart()
{

    DataTable dt = new DataTable();

    try
    {

        dt = GetData();



        str.Append(@"<script type=*text/javascript*> google.load( *visualization*, *1*, {packages:[*corechart*]});

                   google.setOnLoadCallback(drawChart);

                   function drawChart() {

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

    data.addColumn('number', 'TotalOnTime');     

    data.addColumn('number', 'LISC');


    data.addRows(1);");


        for (int i = 0; i <= dt.Rows.Count - 1; i++)
        {

            str.Append("data.setValue( " + i + "," + 1 + "," + "'" + dt.Rows[i]["LISC"].ToString() + "');");

            str.Append("data.setValue(" + i + "," + 0 + "," + dt.Rows[i]["TotalOnTime"].ToString() + ") ;");

        }

        str.Append(" var chart = new google.visualization.BarChart(document.getElementById('chart_div'));");

        str.Append(" chart.draw(data, {width: 1850, height: 500,bars: 'horizontal', title: 'Materiales',");

        str.Append("hAxis: {title: 'LISC', titleTextStyle: {color: 'green'},viewWindow:{max:100,min:0}}");


        str.Append("}); }");

        str.Append("</script>");

        lt.Text = str.ToString().Replace('*', '"');

    }
    catch
    {

    }

}

这是查询结果:

enter image description here

对此有任何帮助或评论很有帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

y值正确。检查Y轴上的值,它们的值除以3/4。
你的图表在2.5到3.25之间,比2.5更接近3.25,所以一个很好的猜测是它大概是2。

这是由谷歌功能引起的,可自动决定连接网格线的数量和值。

查看配置方法here,然后跳转到vAxis.gridlines,看看你可以改变什么来实现你想要的东西。