本ウェブサイトでは、JavaScriptおよびスタイルシートを使用しております。
お客さまがご使用のブラウザではスタイルが未適応のため、本来とは異なった表示になっておりますが、情報は問題なくご利用いただけます。
この章では、チャート(グラフ)コンポーネントについて説明します。
チャートコンポーネントは、チャートコンポーネント独自のライセンスが必要となります。
| チャート名 | 概要 |
|---|---|
| AreaChart | エリアチャート |
| BarChart | 水平方向の棒グラフ |
| CandlestickChart | 株価グラフ |
| ColumnChart | 垂直方向の棒グラフ |
| LineChart | 折れ線グラフ |
| PieChart | 円グラフ |
| PlotChart | プロットチャート |
| BubbleChart | バブルチャート |

チャートコンポーネントはデータ分析などにおいてよく使われるコンポーネントです。
まず、基本的なチャート、棒グラフ(ColumnChart)の作成してみましょう。
棒グラフでは(他のグラフもそうですが)、単一のグラフを表示することも、複数のグラフを表示することもできます。ここでは、以下のようなデータを使って、月ごとの売り上げを表示するグラフを作成します。

データでは、Steeve、Scott、Andyの3人の1月、2月、3月の売り上げがあります。まず最初は、Steeveだけのデータを使った単一グラフを表示してみます。
→










例えば、上記のグラフにおいて、各月の総計を表示したいとすると、棒グラフを1つ追加するか、または別のグラフを作成する必要があります。しかし、各月の総計は、折れ線グラフにして、この棒グラフ上に重ねることができたとしたらどうでしょうか? Flexのグラフでは、このようなグラフの重ね合わせをすることができます。
以下に例を示します。

このグラフは、棒グラフ(ColumnChart)内に、折れ線グラフを表記することで実現しています。
以下に全ソースを示します。
【サンプルソース】

<mx:series>タグの中に、ColumnChart用の<mx:ColumnSeries>、<mx:LineSeries>タグの双方が記述されていることに注意してください。また、それぞれが異なるデータをバインディングしている点にも注意してください。<mx:ColumnSeries>は各自のデータが記述されている配列を、<mx:LineSeries>は、総計が記述されている配列がバインドされています。
重ね合わせグラフでは、各グラフが必要とするY軸エリアが大きく異なった場合、グラフ自体が極端に大きいものになってしまいます。上記重ね合わせグラフでも、折れ線グラフと棒グラフの間に不要な空間が開いています。このような無駄なエリアを削除するために、二軸のグラフを作成することができます。以下に二軸グラフの例を示します。
【画面イメージ】

【サンプルソース】

円グラフも、棒グラフ、折れ線グラフと同様の手順で作成することができます。以下にサンプルを示します。
【サンプルソース】

変更されているのは<mx:series>タグ内の<mx:PieSeries>です。
ここでは、円グラフに表示するデータ(field)や、凡例に表示するデータ(nameField)、ラベルの表示位置(labelPosition)を指定します。
以下にグラフのイメージを示します。
【グラフイメージ】
から選択することができます。

ラベルの表記はlabelFunctionプロパティを使って変更することができます。これは、円グラフだけでなく、すべてのグラフで使用することができます。
以下にそのイメージを示します。
【ラベル表記を変更したグラフ】

【サンプルソース】

labelFunctionプロパティに呼び出しメソッドを指定します。この場合、引数は4つとなるようです。この呼び出されたメソッドの中でラベルのフォーマットを変更し、表示しています。
グラフはクリックされるとイベントを発生します。この時生成されるイベントオブジェクトには、クリックされた場所の情報などが入っています。
下の図ではクリックされた場所のデータをデータグリッドに表示しています。
【イベントイメージ】

クリックイベントは、itemClickで取得することができます。では、イベントの取得方法を見てみましょう。
クリックされた場所のデータは、イベントオブジェクトのhitData.itemに格納されています。これを使うには、mx.chart.HitDataクラスをインポートする必要があります。
右クリックでソースを表示します。