0

PHP を使用してデータベースからデータを動的に取得する Google ゲージがあります。問題は、使用したゲージの下部ラベルにサフィックスを付けたいことです。

  // This is what creates the problem 
  var formatter = new google.visualization.NumberFormat({
    suffix: '%',
    fractionDigits: 0
  });
  formatter.format(data, 1);

そして、これは、時間の経過とともにゲージ値を変更し始めるまでは正常に機能します。ポインターのみが移動し、下部の魔女のラベルには「値 + %」が同じままであると表示されます。

ビジーゲージのイメージ

誰でもこれを修正する方法を知っていますか?!?

ゲージのコード:

function SOC() {
  var data = google.visualization.arrayToDataTable([
    ['Label', 'Value'],
    ['SOC', 10]
  ]);
  var options = {
    width: 250, height: 250,
    redFrom: 0, redTo: 10,
    yellowFrom: 10, yellowTo: 25,
    minorTicks: 5,
    majorTicks: ['0','25','50','75','100']
  };
  var formatter = new google.visualization.NumberFormat({
    suffix: '%',
    fractionDigits: 0
  });
  formatter.format(data, 1);
  var chart = new google.visualization.Gauge(document.getElementById('SOC'));

  chart.draw(data, options);
  setInterval(function() {
    $.ajax({
        url: "soc.php",
        dataType: "JSON",
        data:{},
        success: function(x){
          console.log(x["SOC"]);
          data.setValue(0, 1, x["SOC"] );
          chart.draw(data, options);
        }
    });
    }, 2000);
} 
4

1 に答える 1

0

データを更新した後、formatter.format(data, 1) を呼び出してみてください。

setInterval(function() {
          data.setValue(0, 1, 40 + Math.round(60 * Math.random()));
          formatter.format(data, 1);
          chart.draw(data, options);
        }, 1000);

このフィドルをチェックしてください

于 2017-01-02T12:30:22.473 に答える