AFreeChart

AFreeChartのメモ
AFreeChartはJFreeChartをAndroidで動くようにしたものらしいです。
なので、AFreeChartで調べてわからないことはJFreeChartで調べても応用が利きます
AFreeChartは以下から入手可能です。
http://code.google.com/p/afreechart/

基本的な使い方

といっても時間を軸にするTimeSeriesChartしか扱ったことがないですが^^;

  1. データセットのインスタンスを生成
  2. AFreeChartのインスタンスを目的のグラフを生成するメソッドを呼び出して生成
  3. グラフの値や表示の設定を行う

こんな感じの流れです。

AFreeChartにおける折れ線グラフの予備知識

X軸、Y軸がありますが、AFreeChartではX軸をDomain、Y軸をRangeと呼ぶようです。
折れ線グラフの軸の設定を行う場合、getDomainAxis()、getRangeAxis()メソッドでそれぞれの軸を扱うValueAxisインスタンスを取得し、設定を行います。
(この辺はTimeSeriseChartしかやったことがないので、もしかすると別のグラフだと違うメソッドの可能性もある)

TimeSeriseChart

TimeSeriseChartは時間を軸とした折れ線グラフです。

グラフの準備

まずは、AFreeChartのインスタンスを生成する。
この時に、createTimeSeriesChart()メソッドを使って、TimeSeriseChartを生成する。
データセットはTimeSeriesCollectionインスタンスを生成して用意する。

#codeprettify{{ TimeSeriesCollection dataset = new TimeSeriesCollection(); AFreeChart chart = ChartFactory.createTimeSeriesChart(

	"タイトル", "X軸のラベル", "Y軸のラベル", 
	dataset, 
	true, true,false);

}}

値の追加は、データセットに登録するTimeSeriesのインスタンスに対して行う。

#codeprettify{{ TimeSeries serias = new TimeSeries("名称"); seriase2.add(時間, 値); }} 時間の部分には、org.afree.data.timeパッケージに用意されているクラスのインスタンスを設定します。

タップした位置の近いプロットに対して補助線を表示する

XYPlotのsetDomainCrosshairVisible()メソッドで横、setRangeCrosshairVisible()メソッドで縦の補助線を表示する設定を行えます。
また、getDomainCrosshairValue()メソッドで、横方向の値、getRangeCrosshairValue()メソッドで縦方向の値を取得できます。

パフォーマンスについて

はっきり言って大量のデータを扱うにはかなりつらいです。
1分単位で1日分のデータを扱う場合、描画にかなり時間がかかります。
そのため、いくつかに分割し、フリックやタップ時に次のデータを読み込むような工夫が必要です。

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-08 (水) 23:07:13