2015-05-25 127 views
1

我在創建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

y值是正確的。檢查你的Y軸上的值,它們被分成3/4的值。
您的圖形介於2.5和3.25之間,並且比2.5更接近3.25,所以很好的估計是它大約是2.

這是由Google函數自動決定有多少個值以及爲了什麼值附上您的網格線。

查看配置方法here,然後跳轉到vAxis.gridlines,查看您可以改變的內容以實現您要查找的內容。

+0

有點幫助的唯一附加格式是「vAxis.gridlines.count」,我對結果並不完全滿意,但我想它的工作原理可能會嘗試使用另一種替代方法,而不是使用Google圖表。 – MoralesJosue

+0

我看到你已經輸入了'hAxis.viewWindow.min'和max。試着用'vAxis.viewWindow.min = 0'做同樣的事情,然後從那裏開始工作。這可能會幫助你控制「漂亮」一代。 –