2014-09-26 36 views
7

Tek sayfada birden fazla Google Grafik türünü almaya çalışıyorum. Pasta grafiği ve Takvim grafiği. Bunu yapmak çalıştığımda, Pasta Grafik yerine aşağıdaki hatayı alıyorum: Ben sadece bir defada bir grafiği yaparsanızTek sayfada birden fazla Google Grafik türü

You called the draw() method with the wrong type of data rather than a DataTable or DataView 

hata ortadan kalkar. Ve her zaman aynı hatayı gösteren en üstteki arabadır. Elde ettiğim en iyi şey, çünkü veriler farklı bir türdendir. Bu yüzden, karışan değişkenlerle ilgili bir şey olduğunu düşündüm.

<script type='text/javascript' src='https://www.google.com/jsapi'></script> 
<script type='text/javascript'> 
    google.load('visualization', '1', { 
     packages : [ 'corechart' ] 
    }); 
    google.setOnLoadCallback(drawChart_testGraph); 
    function drawChart_testGraph() { 

     var data_testGraph = google.visualization.arrayToDataTable([ 
       [ 'Department', 'Count' ], [ 'Accounting', 1 ], [ 'Lobby', 1 ], 
       [ 'Customer Apps', 1 ], [ 'PC Support', 0 ], 
       [ 'Collections', 0 ], [ 'Inventory', 1 ], [ 'Billing', 0 ], 
       [ 'Executive', 4 ], [ 'Customer Service', 0 ], 
       [ 'Sales and Marketing', 0 ], [ 'Product and Development', 1 ], 
       [ 'Materials Management', 0 ], [ 'Remittance', 0 ], 
       [ 'Support Services', 0 ], [ 'Indirect Distribution', 1 ], 
       [ 'Provisioning Support', 1 ], ]); 

     var options_testGraph = { 
      title : 'Usage by department', 
      backgroundColor : 'transparent', 
      is3D : 'false', 
     }; 

     var chart_testGraph = new google.visualization.PieChart(document 
       .getElementById('testGraph')); 

     chart_testGraph.draw(data_testGraph, options_testGraph); 
     console.log(data_testGraph); 
    } 
</script> 
<div id='testGraph' style='width: 900px; height: 500px;'></div> 
<script type='text/javascript' src='https://www.google.com/jsapi'></script> 
<script type='text/javascript'> 
    google.load('visualization', '1.1', { 
     packages : [ 'calendar' ] 
    }); 
    google.setOnLoadCallback(drawChart_testGraph2); 
    function drawChart_testGraph2() { 

     var dataTable_testGraph2 = new google.visualization.DataTable(); 
     dataTable_testGraph2.addColumn({ 
      type : 'date', 
      id : 'Department' 
     }); 
     dataTable_testGraph2.addColumn({ 
      type : 'number', 
      id : 'Count' 
     }); 
     dataTable_testGraph2.addRows([ [ new Date('2014, 09, 18'), 1 ], 
       [ new Date('2014, 09, 17'), 1 ], 
       [ new Date('2014, 09, 15'), 6 ], 
       [ new Date('2014, 09, 13'), 1 ], 
       [ new Date('2014, 09, 12'), 2 ], ]); 

     var options_testGraph2 = { 
      title : 'Usage by department', 
      backgroundColor : 'white', 
      is3D : 'false', 
     }; 

     var chart_testGraph2 = new google.visualization.Calendar(document 
       .getElementById('testGraph2')); 

     chart_testGraph2.draw(dataTable_testGraph2, options_testGraph2); 

    } 
</script> 
<div id='testGraph2' style='width: 900px; height: 500px;'></div> 
</div> 

herhangi bir fikir: Her grafiğin verilerine rakipsiz bir tanımlayıcı eklenmiştir ve hala sorunu olsun ... İşte

benim PHP HTML çıktısı nedir?

+1

Yalnızca '' sayfanıza bir kez. – Robbert

+0

@Robbert Biliyorum, onun PHP betiğimde şu andaki mantığı. Gelecekte üzerinde çalışacağım bir şey var, ama test ettim ve problemi etkilemiyor. – alexander7567

+0

Bu komik, aynı sorunu YouTube analizlerinde görüyorum! Devre ekibine oradaki sesler. – towerofnix

cevap

19

Bu, google paketlerini yüklemenin doğru yolu değil, google görselleştirme paketlerini 2 kez yüklemeye çalışıyorsunuz, böylece ikincisi birincinin üzerine yazılıyor. Eski versiyon yedekleyebilirsiniz

google.load('visualization', '1', { 
    packages : [ 'corechart', 'calendar' ] 
}); 
+0

Paketleri bu şekilde kullandığınız sürece kodun çalıştığını gösteren bir [jsfiddle] (http://jsfiddle.net/63brwLoa/) oluşturdum. – Robbert

+0

Teşekkür ederiz! Şimdi bunu belirttiğinize göre, bu satırın ne anlama geldiğini biliyorum :) – alexander7567

+0

Fiddle @Robbert – juvian

0

(2 kez her ikisi veya yük): İkinci yükü kaldırmak ve sadece ilk senaryodaki hem yüklemeniz gerekir. Sadece bağlantıdaki js dosyasının sürüm numarasını değiştirin.

version':'1.1version':'1

Beğen: <script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['corechart']}]}"></script>

İlgili konular