【Swift-Charts】X軸に1日ずつずらした日付を埋め込んだグラフを作りたい

実現したいこと

折れ線グラフのX軸に日付を埋め込んで、X軸には「最初のデータから1日ずつ増やした日付」、Y軸には「日付に対応した個々の値」(対応する値がない場合はnullを代入)が入るようにしたいです。

イメージといたしましては以下のグラフのようにX軸には1週間ごとの日付をY軸には値を入れて、1週間ごとの記録でページを切り替える構造にしたいと考えています。
イメージ説明
StudyPlusより参照いたしました。

試したこと

初心者ながら考えた方法としましては
① データの中で日付が1番早いものと遅いものを取り出し、経過日数を計算する。
② 1番早い日付のものから遅い日付のものまで1日ずつ日付を加えていき、それをX軸の値として配列で保持
③ 上記の日付に対応する値をY軸の値として配列として保持
(対応する値がない場合はnullを代入)
④ ②③の値を使ってChartsでグラフを描画
⑤ データを1週間ごとに分け、それぞれにページを割り当てる
⑥ ボタンでページを切り替えることで1週間ごとのデータを順に表示させる
という流れで製作できるのではないかと思っているのですが、方法に自信がなく、より良い方法で作成する術があれば教えていただきたく質問させていただきました。

加えて上記①②の処理を下記のように行った際、アプリがとても重くなってしまいました。
下記のコードのどこが間違っているのかわからず、非常に困っています。
下のコードの誤りも重ねて教えていただけますと大変ありがたいです。

Swift

1var calendar = Calendar(identifier: .gregorian)2var firstPost = points.first?.date 3var lastPost = points.last?.date 4//経過日数5var dateInterval: Int = Int(lastPost!.timeIntervalSince(firstPost!)) / (24 * 60 * 60)6//2127print(dateInterval)8var i = 09repeat{10 date.append(Calendar.current.date(byAdding: .day, value: i, to: firstPost!))11 i += 112} while i < dateInterval

拙い説明だと思いますがご教授いただけますと幸いです。

よろしくお願いいたします。

コメントを投稿

0 コメント