簡體   English   中英

Google Charts API:在折線圖中顯示數據點值

[英]Google Charts API: Show Data Point Values in Line Chart

我剛接觸PHP,並獲得了一個使用Google Visualization的項目。 在下面的代碼中,如何在折線圖上永久顯示數據值和數據點?

事情我已經嘗試:1.設置pointSize到某一值2.設置dataOpacity 1 3.添加此注釋列<? php echo {type: 'string', role: 'annotation'} ?>, <? php echo {type: 'string', role: 'annotation'} ?>,如此處所示: Google Charts API:始終使用arrayToDataTable顯示數據點值。 怎么樣? 但是卻出現了服務器錯誤。 我可能做錯了。

感謝您的幫助。 謝謝!

function drawChart() {

    var data = google.visualization.arrayToDataTable([
        ['Year', 'Payout Ratio'],
        [<?php echo json_encode(date('Y', strtotime('-1 year'))); ?>,  <?php echo json_encode($oneYearAgoPayoutRatio); ?>],
        [<?php echo json_encode(date('Y', strtotime('-2 year'))); ?>,  <?php echo json_encode($twoYearsAgoPayoutRatio); ?>],
        [<?php echo json_encode(date('Y', strtotime('-3 year'))); ?>,  <?php echo json_encode($threeYearsAgoPayoutRatio); ?>],
        [<?php echo json_encode(date('Y', strtotime('-4 year'))); ?>,  <?php echo json_encode($fourYearsAgoPayoutRatio); ?>],
        [<?php echo json_encode(date('Y', strtotime('-5 year'))); ?>,  <?php echo json_encode($fiveYearsAgoPayoutRatio); ?>]
    ]);

  var options = {
    chart: {
      title: 'Payout Ratio',
    },
    backgroundColor: '#fafbfc',
    colors: ['#3073b5'],
  };

  var chart = new google.charts.Line(document.getElementById('payout_ratio'));

  chart.draw(data, google.charts.Line.convertOptions(options));
}

經過一些試驗后,看來“材料折線圖”目前不支持注釋。 已更新我的代碼以改為使用經典折線圖,並遵循Google Charts API中的 @asgallant建議:始終使用arrayToDataTable顯示數據點值。 怎么樣? 使用DataView。

 <html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Year', 'Payout Ratio'], ['2004', 1.2], ['2005', -0.25], ['2006', 2.5], ['2007', 5.8] ]); // Use view to show annotation var view = new google.visualization.DataView(data); view.setColumns([0, 1, { calc: "stringify", sourceColumn: 1, type: "string", role: "annotation" },]); var options = { title: 'Payout Ratio', backgroundColor: '#fafbfc', colors: ['#3073b5'], // Display data point pointSize: 5, }; var chart = new google.visualization.LineChart(document.getElementById("payout_ratio")); chart.draw(view, options); } </script> </head> <body> <div id="payout_ratio" style="width: 500px; height: 300px"></div> </body> </html> 

根據您發布的來源,注釋列應如下所示。

您發布了:

<? php echo {type: 'string', role: 'annotation'} ?>

示例是:

[/* column headers */, {type: 'string', role: 'annotation'}, /* column headers */]

也是js,因此您無需在php中回顯它。

因此,您的代碼塊的該部分應如下所示:

var data = google.visualization.arrayToDataTable([
    [/* column headers */, {type: 'string', role: 'annotation'}, /* column headers */],        
    ['Year', 'Payout Ratio'],
    [<?php echo json_encode(date('Y', strtotime('-1 year'))); ?>,  <?php echo json_encode($oneYearAgoPayoutRatio); ?>],
    [<?php echo json_encode(date('Y', strtotime('-2 year'))); ?>,  <?php echo json_encode($twoYearsAgoPayoutRatio); ?>],
    [<?php echo json_encode(date('Y', strtotime('-3 year'))); ?>,  <?php echo json_encode($threeYearsAgoPayoutRatio); ?>],
    [<?php echo json_encode(date('Y', strtotime('-4 year'))); ?>,  <?php echo json_encode($fourYearsAgoPayoutRatio); ?>],
    [<?php echo json_encode(date('Y', strtotime('-5 year'))); ?>,  <?php echo json_encode($fiveYearsAgoPayoutRatio); ?>]
]);

暫無
暫無

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

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