簡體   English   中英

Google Charts 雙 Y 軸線上的 Y 軸格式

[英]Y-Axis format on Google Charts dual Y-Axis Line

我想格式化我的谷歌雙 Y 軸折線圖的 Y 軸。 這是我正在使用的代碼:

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

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

function drawChart() {

  var chartDiv = document.getElementById('chart_div');

  var data = new google.visualization.DataTable();
  data.addColumn('date', 'Date');
  data.addColumn('number', "Average Pressure");
  data.addColumn('number', "Average Temperature");

  data.addRows([
[new Date(2016, 08, 29, 00, 03, 00), 1019.2, 23.7],
[new Date(2016, 08, 29, 00, 06, 00), 1019.27, 23.6],
[new Date(2016, 08, 29, 00, 09, 00), 1019.37, 23.6],
[new Date(2016, 08, 29, 00, 12, 00), 1019.34, 23.6],
(...snip data...)
[new Date(2016, 08, 29, 14, 33, 00), 1014.89, 30.8],
[new Date(2016, 08, 29, 14, 36, 00), 1014.81, 30.6],
[new Date(2016, 08, 29, 14, 39, 00), 1014.82, 30.8],
[new Date(2016, 08, 29, 14, 42, 00), 1014.76, 31.1],
[new Date(2016, 08, 29, 14, 45, 00), 1014.7, 31],
[new Date(2016, 08, 29, 14, 48, 00), 1014.67, 30.6],
[new Date(2016, 08, 29, 14, 51, 00), 1014.73, 31],
[new Date(2016, 08, 29, 14, 54, 00), 1014.74, 30.7],
[new Date(2016, 08, 29, 14, 57, 00), 1014.77, 30.5],
[new Date(2016, 08, 29, 15, 00, 00), 1014.75, 30.1],
  ]);
  var materialOptions = {
    chart: {
      title: 'Average Pressure and Temperatures'
    },
    width: 1200,
    height: 600,
    series: {
      // Gives each series an axis name that matches the Y-axis below.
      0: {axis: 'Pressure'},
      1: {axis: 'Temperature'}
    },
    axes: {
      // Adds labels to each axis; they don't have to match the axis names.
      y: {
        Temps: {label: 'Pressure'},
        Daylight: {label: 'Temps (Celsius)'}
      }
    }
  };

  function drawMaterialChart() {
    var materialChart = new google.charts.Line(chartDiv);
    var classicChart = new google.visualization.LineChart(chartDiv);
    materialChart.draw(data, materialOptions);
    button.innerText = 'Change to Classic';
    button.onclick = drawClassicChart;
  }
  drawMaterialChart();
}
    </script>
  </head>
  <body>
  <br><br>
  <div id="chart_div"></div>
  </body>
</html>

我希望 Y 軸能夠在 Y 軸(對於機器人 Y 軸)以及工具提示消息上顯示未舍入的數據(現在它只顯示 1K 值而不是小數點)。 工具提示消息始終顯示在壓力值 1K 和溫度值上,不帶小數點的值...

有人可以幫助我嗎?

謝謝!

西蒙

PS:數據是從 php 腳本動態創建的,但現在這不重要:)

使用NumberFormat格式化data

這將設置工具提示的格式...

// create formatter
var formatNumber = new google.visualization.NumberFormat({pattern: '#,##0.0'});

// format column 1 - Pressure
formatNumber.format(data, 1);

// format column 2 - Temperature
formatNumber.format(data, 2);

要格式化兩個 y 軸,請將其添加到materialOptions ...

vAxis: {
  format: '#,##0.0'
}

還建議將google.charts.Line.convertOptionsMaterial圖表一起使用

請參閱以下工作片段...

 google.charts.load('current', {'packages':['line', 'corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var chartDiv = document.getElementById('chart_div'); var data = new google.visualization.DataTable(); data.addColumn('date', 'Date'); data.addColumn('number', "Average Pressure"); data.addColumn('number', "Average Temperature"); data.addRows([ [new Date(2016, 08, 29, 00, 03, 00), 1019.2, 23.7], [new Date(2016, 08, 29, 00, 06, 00), 1019.27, 23.6], [new Date(2016, 08, 29, 00, 09, 00), 1019.37, 23.6], [new Date(2016, 08, 29, 00, 12, 00), 1019.34, 23.6], [new Date(2016, 08, 29, 14, 33, 00), 1014.89, 30.8], [new Date(2016, 08, 29, 14, 36, 00), 1014.81, 30.6], [new Date(2016, 08, 29, 14, 39, 00), 1014.82, 30.8], [new Date(2016, 08, 29, 14, 42, 00), 1014.76, 31.1], [new Date(2016, 08, 29, 14, 45, 00), 1014.7, 31], [new Date(2016, 08, 29, 14, 48, 00), 1014.67, 30.6], [new Date(2016, 08, 29, 14, 51, 00), 1014.73, 31], [new Date(2016, 08, 29, 14, 54, 00), 1014.74, 30.7], [new Date(2016, 08, 29, 14, 57, 00), 1014.77, 30.5], [new Date(2016, 08, 29, 15, 00, 00), 1014.75, 30.1], ]); var formatPattern = '#,##0.0'; var formatNumber = new google.visualization.NumberFormat({pattern: formatPattern}); formatNumber.format(data, 1); formatNumber.format(data, 2); var materialOptions = { chart: { title: 'Average Pressure and Temperatures' }, width: 1200, height: 600, series: { 0: {axis: 'Pressure'}, 1: {axis: 'Temperature'} }, axes: { y: { Temps: { label: 'Pressure' }, Daylight: { label: 'Temps (Celsius)' } } }, vAxis: { format: formatPattern } }; function drawMaterialChart() { var materialChart = new google.charts.Line(chartDiv); materialChart.draw(data, google.charts.Line.convertOptions(materialOptions)); } drawMaterialChart(); }
 <script src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM