アプリ開発『WeightControl』vol.25 Core-PlotのX軸を日付にする方法
Core-PlotのX軸を日付にする方法ですが、まず、下記のサイトを参考にカスタマイズしてみました。
Core-Plotをじっくり使ってみる(X軸を日付にする) - Debian GNU/Linux 3.1 on PowerMac G4
今回は30日前の日付から今日までの日付を(◯◯/◯◯)の形式でX軸に表示させたいのですが、上記サイトを踏まえると、準備として、下記のようなコードが必要でしたので、viewDidAppear内に書きました。
------------------------------
// X軸を日付にするための準備
NSDate *today = [NSDate date];
NSTimeInterval oneDay = 24.0f * 60.0f * 60.0f;
// 30日前の日付を求める
NSDateComponents *comps = [[NSDateComponents alloc]init];
NSCalendar *calendar = [NSCalendar currentCalendar];
comps.day = -30;
NSDate *dateBefore30 = [calendar dateByAddingComponents:comps toDate:today options:0];
// 日付を◯◯/◯◯の形式にして、30日前の日からグラフがスタートするように設定
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd"];
CPTTimeFormatter *timeFormatter = [[CPTTimeFormatter alloc] initWithDateFormatter:dateFormatter];
timeFormatter.referenceDate = dateBefore30;
------------------------------
timeFormatter.referenceDateに入れた日付がグラフのX軸のスタート日になるので、ここを30日前の日付にしておくのがミソです。
さて、これで、X軸とY軸のラベルのカスタマイズが終わったので、後は、実際に過去30日間の体重データをどのように保存して、このグラフに反映させるのかについてやっていきます。今プロットしているデータはランダムに生成した値なので。