2016-11-30 14 views
1

Google Chart JavaScriptライブラリで生成されたDual-Yグラフがあります。 JSFiddleの私のチャートをiOS端末にGoogleグラフが表示されない

リンク: https://jsfiddle.net/fzmjd593/

とコード:

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

     function drawChart() { 
      var date = new Date(); 
      var file_data = "00:00:01 0 22.6 C 40.2 %\n00:01:01 0 22.6 C 40.1 %"; 

      var items = file_data.split("\n"); 

      var array = []; 

      for (var i = 0; i < items.length - 1; i++) { 
       var row_items = items[i].split(" "); 
       var d = new Date(date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + row_items[0]); 
       array.push([d, Number(row_items[2]), Number(row_items[4])]) 
      } 

      var data = new google.visualization.DataTable(); 
      data.addColumn('datetime', 'Time'); 
      data.addColumn('number', "Temperature [C]"); 
      data.addColumn('number', "Relative humidity [%]"); 

      data.addRows(array); 

      var materialOptions = { 
       chart: { 
       }, 
       series: { 
        0: { axis: 'Temps' }, 
        1: { axis: 'Humidity' } 
       }, 
       axes: { 
        y: { 
         Temps: { label: 'Temperature [C]' }, 
         Humidity: { label: 'Relative humidity [%]' } 
        } 
       } 
      }; 

      var materialChart = new google.charts.Line(document.getElementById('chart_div')); 
      materialChart.draw(data, materialOptions); 
    } 

それはデュアルYチャートの例を少し変更したバージョンです。

問題は、それがPC(任意のブラウザ)、Androidの(Chromeでテストした)上で正しく表示されますということですが、Safariとクロームグラフの線の両方のiOSデバイス(アプリ/ iPhone)用に表示されていません。IPad screenshot

なぜこれがこのように機能するのかあなたは考えていますか?

答えて

1

私はこのような問題を見てきました毎回、iosで、それは各行の日付を構築する際に別のコンストラクタを使用してみてください日付形式/コンストラクタに

を煮詰め...

スニペットは、次のこと

new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]);

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

 
     function drawChart() { 
 
      var date = new Date(); 
 
      var file_data = "00:00:01 0 22.6 C 40.2 %\n00:01:01 0 22.6 C 40.1 %\n00:02:01 0 22.7 C 40.1 %\n00:03:01 0 22.6 C 40.2 %\n00:04:01 0 22.6 C 40.2 %\n00:05:01 0 22.6 C 40.2 %\n00:06:01 0 22.6 C 40.2 %\n00:07:01 0 22.7 C 40.2 %\n00:08:01 0 22.6 C 40.2 %\n00:09:01 0 22.6 C 40.1 %\n00:10:01 0 22.6 C 40.2 %\n00:11:01 0 22.6 C 40.1 %\n00:12:02 0 22.6 C 40.1 %\n00:13:01 0 22.6 C 40.1 %\n00:14:01 0 22.6 C 40.2 %\n"; 
 

 
      var items = file_data.split("\n"); 
 

 
      var array = []; 
 

 
      for (var i = 0; i < items.length - 1; i++) { 
 
       var row_items = items[i].split(" "); 
 

 
       var tod = row_items[0].split(":"); 
 

 
       var d = new Date(date.getFullYear(), date.getMonth(), date.getDate(), parseInt(tod[0]), parseInt(tod[1]), parseInt(tod[2])); 
 

 
       var tod2 = [Number(tod[0] - 1), Number(tod[1]), Number(tod[2])]; 
 

 
       array.push([d, Number(row_items[2]), Number(row_items[4])]) 
 
      } 
 

 
      var data = new google.visualization.DataTable(); 
 
      data.addColumn('datetime', 'Time'); 
 
      data.addColumn('number', "Temperature [C]"); 
 
      data.addColumn('number', "Relative humidity [%]"); 
 

 
      data.addRows(array); 
 

 
      var materialOptions = { 
 
       chart: { 
 
       }, 
 
       series: { 
 
        0: { axis: 'Temps' }, 
 
        1: { axis: 'Humidity' } 
 
       }, 
 
       axes: { 
 
        y: { 
 
         Temps: { label: 'Temperature [C]' }, 
 
         Humidity: { label: 'Relative humidity [%]' } 
 
        } 
 
       } 
 
      }; 
 

 
        var materialChart = new google.charts.Line(document.getElementById('chart_div')); 
 
      materialChart.draw(data, materialOptions); 
 
    }
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div" style="width: 100%; height: 100%"></div>
...次のコンストラクタを使用しています

関連する問題