iPhone用グラフ描画ライブラリ s7graphview の使い方
OpenCVを使って画像処理する際に、パラメータチューニングなどで
画像のヒストグラムをみる必要があって試したライブラリ。
値を渡せばグラフを描画したviewを生成してくれて、
それをaddSubviewするだけ、という大変ありがたいシロモノです。
以下、大まかな使い方を紹介します。
(ソースコード一式)https://github.com/shu223/GraphViewTest
1. ファイルを追加する
こちらからs7graphviewをダウンロードし、
以下の3ファイルをプロジェクトに追加します。
- S7GraphView.h
- S7GraphView.m
- S7Macros.h
2. グラフを貼付ける位置と大きさを設定する
S7GraphViewはUIViewのサブクラスなので、
位置や大きさを変えるにはinitWithFrameでCGRectを設定するだけです。
CGRect graphRect = CGRectMake(0, 0, 320, 460); self.graphView = [[S7GraphView alloc] initWithFrame:graphRect];
3. グラフの本数を設定する
デリゲートメソッドで描画したいグラフの本数を渡します。
- (NSUInteger)graphViewNumberOfPlots:(S7GraphView *)graphView { // ここではとりあえず1本 return 1; }
4. データソースの設定
デリゲートメソッドで X軸と Y軸別々に配列を渡します。
ただし配列の要素数は一致している必要があります。
- (NSArray *)graphViewXValues:(S7GraphView *)graphView { // ここではとりあえずX軸を 0〜255 に NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:256]; for ( int i = 0 ; i <= 255 ; i ++ ) { [array addObject:[NSNumber numberWithInt:i]]; } return array; }
- (NSArray *)graphView:(S7GraphView *)graphView yValuesForPlot:(NSUInteger)plotIndex { // Y軸は0〜999までの整数をランダムに // 値の数はX軸と同じく256個 NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:256]; switch (plotIndex) { default: case 0: for ( int i = 0 ; i <= 255 ; i ++ ) { [array addObject:[NSNumber numberWithInt:rand()%1000]]; } break; } return array; }
x軸、y軸のラベルの設定は、渡した値の範囲をみて勝手にやってくれるようです。
xValuesFormatter / yValuesFormatter プロパティでフォーマット指定や、
xValuesColor / yValuesColor で文字色の指定、
gridXColor / gridYColor で軸の色の指定もできるようです。
上記手順で作成したコードを実行すると、下記のようなグラフが表示されます。