iOS16/SwiftUI 4の新機能の使い方──Chartsフレームワーク、Navigation、Advanced controls
iOS16の新機能に触れてみよう 第1回
ダウンロード サンプルファイル (170.1 KB)
グラフの生成が容易に──Swift Chartsフレームワーク
SwiftUIの仕様としてグラフを描画する機能がChartsフレームワークの名前で追加されました。
Swift自体の機能でグラフを描画できるため、Apple以外のライブラリなどに依存する必要はなくなります。Chartsフレームワークは既定で棒グラフ/面グラフ/折れ線グラフ/点グラフ/矩形グラフをサポートしています。
棒グラフを表示する
Chartsフレームワークを利用して棒グラフを表示してみます。グラフに表示するサンプルデータとして月あたりの売り上げデータを作成し、X軸に月/Y軸に売り上げの棒グラフを作成します。
import SwiftUI
import Charts // Charts framework をインポート
struct MonthAmount: Identifiable { // グラフに表示するデータを定義
var id = UUID()
var month: String
var amount: Double
}
extension MonthAmount {
static let examples: [MonthAmount] = [ // サンプルデータ
.init(month: "1月", amount: 100.00), .init(month: "2月", amount: 70.00),
.init(month: "3月", amount: 90.00), .init(month: "4月", amount: 110.00),
.init(month: "5月", amount: 130.00), .init(month: "6月", amount: 60.00)
]
}
struct ContentView: View {
var body: some View { // 画面にチャートを表示
Chart { // (1)
ForEach(MonthAmount.examples) { item in // (2)
BarMark(
x: .value("Month", item.month), y: .value("Amount", item.amount)
).foregroundStyle(.blue)
}
}.padding()
}
}
グラフを表示するCharts構造体を呼び出します。その中で棒グラフを表示するBarMark構造体のx、yに対して配列のデータを割り当てます(2)。これだけで棒グラフを表示できます。
折れ線グラフを表示する
前項のサンプルで表示した棒グラフを折れ線グラフで表示したい場合は、次のようにBarMark構造体を折れ線グラフを表示するLineMark構造体に変更します。
struct ContentView: View {
var body: some View {
Chart {
ForEach(MonthAmount.examples) { item in
LineMark( // LineMark構造体を利用
x: .value("Month", item.month), y: .value("Amount", item.amount)
).foregroundStyle(.blue)
}
}.padding()
}
}
書式としては、Chartsブロックの中で、各グラフを表示する構造体にデータを割り当てるイメージです。
上記のサンプルのように、短いコードで目的のグラフを表示することができます。
この記事は参考になりましたか?
- この記事の著者
-
WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
