0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Visualforce] Google Charts使用方法

Last updated at Posted at 2023-04-06

レポートやダッシュボードでやりたいことが実現できないときに役立つかも。
サイトでグラフ等を公開したいが、ライセンスがレポートダッシュボード使用不可のときなどにも

使用準備

<head>内でライブラリを読み込む

<apex:includeScript value="https://www.gstatic.com/charts/loader.js"/>
<script>
  google.charts.load('current', {packages: ['corechart']});
  google.charts.setOnLoadCallback(drawChart);
  // 省略
</script>

グラフの描画

javascript部分に以下を追加
オプションでタイトル、凡例の表示場所や、色などを設定できる

function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work',     11],
          ['Eat',      2],
          ['Commute',  2],
          ['Watch TV', 2],
          ['Sleep',    7]
        ]);

        var options = {
          title: 'My Daily Activities',
          is3D: true,
        };

        var chart = new google.visualization.PieChart(document.getElementById('piechart_3d'));
        chart.draw(data, options);
      }

Visualforceの<body>にはグラフ描画用のタグを用意しておく

<body>
    <div id="piechart_3d" style="width: 900px; height: 500px;"></div>
</body>

Apexから値を渡す方法

Apexからのデータを受け取ってグラフを描画することも可能

    public String incomeJson {get;set;} // jsがアクセスする変数

    public void init(){
        Map<String, Integer> incomeMap = new Map<String, Integer>();
        incomeMap.put('2023-01', 355000);
        incomeMap.put('2023-02', 284000);
        incomeMap.put('2023-03', 213000);
        incomeMap.put('2023-04', 284000);
        // JSONの形に変換
        incomeJson = JSON.serialize(incomeMap);
    }

javascriptでの受け取り


            var dataMap = JSON.parse('{!incomeJson}');
            var result = [['年月','数値']];
            Object.keys(dataMap).forEach(function(data) {
                    result.push([data,contactMap[data]]);
            })

javascriptで作成した配列のresultを描画個所のDatatableに渡す

まとめ

数年分のデータをグラフにすると横長になってしまうため、
1年ごとに表示したかったのがGoogle Chartsのガイドがわかりにくくjavascriptで実装。
よい方法があるなら知りたいところです

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?