tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:円グラフの表示

<apex:chart>タグで円グラフを表示する方法です。

f:id:tyoshikawa1106:20121127223025p:plain

 

Apexクラス・サンプル

public with sharing class Chart_PieSeries {
    
    public List<Data> getData() {
        return Chart_PieSeries.getChartData();
    }
    
    @RemoteAction
    public static List<Data> getRemoteData() {
        return Chart_PieSeries.getChartData();
    }
    
    public static List<Data> getChartData() {
        List<Data> data = new List<Data>();
        data.add(new Data('Jan', 30));
        data.add(new Data('Feb', 44));
        data.add(new Data('Mar', 25));
        data.add(new Data('Apr', 74));
        data.add(new Data('May', 65));
        data.add(new Data('Jun', 33));
        data.add(new Data('Jul', 92));
        data.add(new Data('Aug', 87));
        data.add(new Data('Sep', 34));
        data.add(new Data('Oct', 78));
        data.add(new Data('Nov', 80));
        data.add(new Data('Dec', 17));
        return data;
    }
    
    public class Data {
        public String name { get; set; }
        public Integer data1 { get; set; }
        public Data(String name, Integer data1) {
            this.name = name;
            this.data1 = data1;
        }
    }
}

 

対象のデータはラッパークラスの変数にセットして使用します。

 

Visualforceページ・サンプル

<apex:page controller="Chart_PieSeries" title="Pie Chart">
    <apex:chart height="350" width="450" data="{!data}">
        <apex:pieSeries dataField="data1" labelField="name"/>
        <apex:legend position="left"/>
    </apex:chart>
</apex:page>

 

<apex:chart>がグラフを表示するためのタグです。

<apex:pieSeries>でグラフ種別を円グラフに指定しています。

<apex:legend>で凡例の表示位置を指定しています。

 

凡例の表示位置は次の通りです。

  • left
  • right
  • top
  • buttom

 

例:<apex:legend position="left"/> の場合

f:id:tyoshikawa1106:20121128075456p:plain

例:<apex:legend position="right"/> の場合

 

f:id:tyoshikawa1106:20121128075712p:plain

例:<apex:legend position="top"/> の場合

f:id:tyoshikawa1106:20121124195536p:plain

例:<apex:legend position="bottom"/> の場合

 

f:id:tyoshikawa1106:20121124195819p:plain