2017-04-05 12 views
1

4つの異なる変数の数を増やして、円グラフを埋めたいと思います。しかし、私は2列の一意の変数ごとに変数を増やしたいだけです。私はそれらを区別するようにしたいが、私はどのようにするのかをよく理解していない。 if文では、値を文字列と比較しようとします。これは機能します。 |後私はそれを区別しようとするが、私はそれに問題がある。2つの列を区別する

 function createPiechartthree(){ 
     var columns = {}; 
     var xmlColumns = $j('head', xml); 
     xmlColumns.find('headColumn').each(function(){ 

     var columnName = $j(this).find('columnValue').text(); 
     var columnID = $j(this).attr('columnid'); 
     columns[columnName] = (columnID); 
    }); 

     var xmlData = $j('data', xml); 

     xmlData.find('item').each(function(){ 
     $j(this).find('column').each(function(){ 
      var colID = $j(this).attr("columnid"); 


     console.log(colID); 
      var value = $j(this).find('displayData').text(); 



     if(colID == columns["Risk level client"] || colID == columns["Counterparty name"]){ 
      if(value === "High" || value === value){ 
       highRiskCategory++; 
      } 
      else if(value === "Medium" || value === value){ 
       mediumRiskCategory++; 
      } 
      else if(value === "Low" || value === value){ 
       lowRiskCategory++; 
      } else if(value === "" || value === value) { 
       unidentified++; 
      } 




     } 
     }) 
    }) 
+0

HTMLとCSSはちょっと巨大です....しかし、イムは異なる値を持つ円グラフを作成しよう。私は、var値を個別に、あるいは独自に取得する必要があります。 –

+0

「リスクレベルクライアント」の列には、「高」「中」「低」「空」の4つの値が含まれています(ドロップダウン選択メニュー)。もう1つの「カウンターパーティー名」は単一のテキスト行です。今私は、4つの値(変数のriskCategoryと未確認の変数)と取引相手の額をpiechartで作成したいと考えています。例:(高、2)。 2カウンターパーティはリスクの高いクライアントです。しかし、カウンターパーティーは取引をして1回以上登録します。これは、円グラフも増分し、私はそれを望んでいません。私はカウンターパーティーの別称を作りたいと思う理由は何ですか –

+0

スターバックスは高く、スターバックスは高く、マクドナルドは低く、パイチャートでは何が起こるのですか:高い、2低、1スターバックスは2回カウントされました。 –

答えて

0

1)ではなく、手動でカウントをインクリメントするよりも、見つかった値の配列を構築する...

var riskData = [ 
    ['Starbucks', 'High'], 
    ['Starbucks', 'High'], 
    ['McDonalds', 'Low'], 
    ['Dunkin', 'Medium'], 
    ['Dunkin', 'Medium'], 
    ['Dunkin', 'Medium'], 
    ['Subway', 'Low'], 
    ['Chick-fil-a', ''], 
    ['Chick-fil-a', ''] 
]; 

2)その後、重複を除外する:

は、ここに私のコードです。 ..

var pieData = new google.visualization.DataTable(); 
pieData.addColumn('string', 'Risk Level'); 

var counterParty = []; 
riskData.forEach(function (riskLevel) { 
    if (counterParty.indexOf(riskLevel[0]) === -1) { 
    counterParty.push(riskLevel[0]); 
    var rowData = (riskLevel[1] === '') ? ['Unidentified'] : [riskLevel[1]]; 
    pieData.addRow(rowData); 
    } 
}); 

3)その後、カウントを集計するために、Googleのgroupメソッドを使用して...

var groupPie = google.visualization.data.group(
    pieData, 
    [0], 
    [{ 
    aggregation: google.visualization.data.count, 
    column: 0, 
    label: 'Count', 
    type: 'number' 
    }] 
); 

が作業スニペットを次のように表示


...

google.charts.load('current', { 
 
    callback: drawChart, 
 
    packages: ['controls'] 
 
}); 
 

 
function drawChart() { 
 
    // create array like this 
 
    var riskData = [ 
 
    ['Starbucks', 'High'], 
 
    ['Starbucks', 'High'], 
 
    ['McDonalds', 'Low'], 
 
    ['Dunkin', 'Medium'], 
 
    ['Dunkin', 'Medium'], 
 
    ['Dunkin', 'Medium'], 
 
    ['Subway', 'Low'], 
 
    ['Chick-fil-a', ''], 
 
    ['Chick-fil-a', ''] 
 
    ]; 
 

 
    // for example only <-- 
 
    var tableRisk = new google.visualization.ChartWrapper({ 
 
    chartType: 'Table', 
 
    containerId: 'table_risk', 
 
    dataTable: google.visualization.arrayToDataTable(riskData, true) 
 
    }); 
 
    tableRisk.draw(); 
 
    // --> 
 

 
    var pieData = new google.visualization.DataTable(); 
 
    pieData.addColumn('string', 'Risk Level'); 
 

 
    var counterParty = []; 
 
    riskData.forEach(function (riskLevel) { 
 
    if (counterParty.indexOf(riskLevel[0]) === -1) { 
 
     counterParty.push(riskLevel[0]); 
 
     var rowData = (riskLevel[1] === '') ? ['Unidentified'] : [riskLevel[1]]; 
 
     pieData.addRow(rowData); 
 
    } 
 
    }); 
 

 
    // for example only <-- 
 
    var tablePie = new google.visualization.ChartWrapper({ 
 
    chartType: 'Table', 
 
    containerId: 'table_pie', 
 
    dataTable: pieData 
 
    }); 
 
    tablePie.draw(); 
 
    // --> 
 

 
    var groupPie = google.visualization.data.group(
 
    pieData, 
 
    [0], 
 
    [{ 
 
     aggregation: google.visualization.data.count, 
 
     column: 0, 
 
     label: 'Count', 
 
     type: 'number' 
 
    }] 
 
); 
 

 
    // for example only <-- 
 
    var tablePie = new google.visualization.ChartWrapper({ 
 
    chartType: 'Table', 
 
    containerId: 'table_group', 
 
    dataTable: groupPie 
 
    }); 
 
    tablePie.draw(); 
 
    // --> 
 

 
    var chartPie = new google.visualization.ChartWrapper({ 
 
    chartType: 'PieChart', 
 
    containerId: 'chart_pie', 
 
    dataTable: groupPie, 
 
    options: { 
 
     colors: ['red', 'orange', 'green', 'blue'] 
 
    } 
 
    }); 
 
    chartPie.draw(); 
 
}
div { 
 
    display: inline-block; 
 
    margin-right: 8px; 
 
    vertical-align: top; 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="table_risk"></div> 
 
<div id="table_pie"></div> 
 
<div id="table_group"></div> 
 
<div id="chart_pie"></div>

関連する問題