AFreeChartのメモ
AFreeChartはJFreeChartをAndroidで動くようにしたものらしいです。
なので、AFreeChartで調べてわからないことはJFreeChartで調べても応用が利きます
AFreeChartは以下から入手可能です。
http://code.google.com/p/afreechart/
といっても時間を軸にするTimeSeriesChartしか扱ったことがないですが^^;
こんな感じの流れです。
X軸、Y軸がありますが、AFreeChartではX軸をDomain、Y軸をRangeと呼ぶようです。
折れ線グラフの軸の設定を行う場合、getDomainAxis()、getRangeAxis()メソッドでそれぞれの軸を扱うValueAxisインスタンスを取得し、設定を行います。
(この辺は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日分のデータを扱う場合、描画にかなり時間がかかります。
そのため、いくつかに分割し、フリックやタップ時に次のデータを読み込むような工夫が必要です。