2017-09-11 3 views
0

Googleのhistogram機能をJavaScriptで使用して、確率モデルの出力をグラフ表示しています。Googleグラフ - ヒストグラム:データの横に表示される余分なバー

グラフは、異なる入力でcalculate_display_coverage()関数を何百回も実行することによって生成されます。関数の内部動作はここでは問題ではないことを保証します(フィドル全体を実際に投稿することはできませんが、コードスニペットでデータがどのように見えるかを示します)。 HTMLで

gender = { 
    gender1: "Male", 
    gender2: "Female" 
}; 
device = { 
    device1: "Tablet", 
    device2: "Mobile", 
    device3: "Desktop" 
}; 
var paramstring = ""; 

resultArray = []; 
resultArray[0] = ['Run','Coverage']; 
var q = 1; 

for (var x = 0; x < 100; x++) { 
    for (var y in gender) { 
     for (var w in device) { 
      for (var z = 1950; z < 1980; z++) { 
       paramstring = "09/21/"; 
       paramstring += z.toString(); 
       resultArray[q] = [q,calculate_display_coverage('SIW', y, paramstring, w).displayed]; 
       q++ 
      } 
     } 
    } 
} 

// dataset looks like [['Run','Coverage'],[1,80000],[2,42000],...] 

google.charts.load("current", {packages:["corechart"]}); 
google.charts.setOnLoadCallback(drawChart); 
function drawChart() { 
    var data = google.visualization.arrayToDataTable(resultArray); 

    var options = { 
     title: 'Model output by coverage', 
     legend: { position: 'none' }, 
    }; 

    var chart = new google.visualization.Histogram(document.getElementById('chart_div')); 
    chart.draw(data, options); 
} 

:この場合は、x = 100

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"> 
</script> 

<body> 
    <div id="chart_div" style="width: 900px; height: 500px;"></div> 
</body> 

、ヒストグラムは、これらの余分なバーextra bars shown in 100 meta-run chart

多少異なるフォーマットが、x = 2000以上の実行のために同じ問題を含んでいます。

extra bars shown in 100 meta-run chart

前にこれを見て誰ですか?

答えて

0

問題は、データの両方の列が数値であることです。現在の形式は

[['Run','Count'],[1,80000],[2,42000],...] 

です。ヒストグラムには、データポイントとしてのインデックス値が含まれています。上記のコードでは、文は余分なバーを削除します

resultArray[q] = [q.toString(),calculate_display_coverage('SIW', y, paramstring, w).displayed]; 
// [['Run','Count'],['1',80000],['2',42000],...] 

する必要がありますので、あなたは、文字列としてそれらをキャストする必要があります。

関連する問題