SwiftUICharts – line chart, bar chart
  • July 4, 2025

A simple line and bar charting library that support accessibility written using SwiftUI.

Usage


You can find all the examples here.

Vertical bar chart

let highIntensity = Legend(color: .orange, label: “High Intensity”, order: 5)
let buildFitness = Legend(color: .yellow, label: “Build Fitness”, order: 4)
let fatBurning = Legend(color: .green, label: “Fat Burning”, order: 3)
let warmUp = Legend(color: .blue, label: “Warm Up”, order: 2)
let low = Legend(color: .gray, label: “Low”, order: 1)

let limit = DataPoint(value: 130, label: “5”, legend: fatBurning)

let points: [DataPoint] = [
.init(value: 70, label: “1”, legend: low),
.init(value: 90, label: “2”, legend: warmUp),
.init(value: 91, label: “3”, legend: warmUp),
.init(value: 92, label: “4”, legend: warmUp),
.init(value: 130, label: “5”, legend: fatBurning),
.init(value: 124, label: “6”, legend: fatBurning),
.init(value: 135, label: “7”, legend: fatBurning),
.init(value: 133, label: “8”, legend: fatBurning),
.init(value: 136, label: “9”, legend: fatBurning),
.init(value: 138, label: “10”, legend: fatBurning),
.init(value: 150, label: “11”, legend: buildFitness),
.init(value: 151, label: “12”, legend: buildFitness),
.init(value: 150, label: “13”, legend: buildFitness),
.init(value: 136, label: “14”, legend: fatBurning),
.init(value: 135, label: “15”, legend: fatBurning),
.init(value: 130, label: “16”, legend: fatBurning),
.init(value: 130, label: “17”, legend: fatBurning),
.init(value: 150, label: “18”, legend: buildFitness),
.init(value: 151, label: “19”, legend: buildFitness),
.init(value: 150, label: “20”, legend: buildFitness),
.init(value: 160, label: “21”, legend: highIntensity),
.init(value: 159, label: “22”, legend: highIntensity),
.init(value: 161, label: “23”, legend: highIntensity),
.init(value: 158, label: “24”, legend: highIntensity),
]

BarChartView(dataPoints: points, limit: limit)

Horizontal bar chart

let warmUp = Legend(color: .blue, label: “Warm Up”, order: 2)
let low = Legend(color: .gray, label: “Low”, order: 1)

let points: [DataPoint] = [
.init(value: 70, label: “1”, legend: low),
.init(value: 90, label: “2”, legend: warmUp),
.init(value: 91, label: “3”, legend: warmUp),
.init(value: 92, label: “4”, legend: warmUp)
]

HorizontalBarChartView(dataPoints: points)

Line chart

let buildFitness = Legend(color: .yellow, label: “Build Fitness”, order: 4)
let fatBurning = Legend(color: .green, label: “Fat Burning”, order: 3)
let warmUp = Legend(color: .blue, label: “Warm Up”, order: 2)
let low = Legend(color: .gray, label: “Low”, order: 1)

let points: [DataPoint] = [
.init(value: 70, label: “1”, legend: low),
.init(value: 90, label: “2”, legend: warmUp),
.init(value: 91, label: “3”, legend: warmUp),
.init(value: 92, label: “4”, legend: warmUp),
.init(value: 130, label: “5”, legend: fatBurning),
.init(value: 124, label: “6”, legend: fatBurning),
.init(value: 135, label: “7”, legend: fatBurning),
.init(value: 133, label: “8”, legend: fatBurning),
.init(value: 136, label: “9”, legend: fatBurning),
.init(value: 138, label: “10”, legend: fatBurning),
.init(value: 150, label: “11”, legend: buildFitness),
.init(value: 151, label: “12”, legend: buildFitness),
.init(value: 150, label: “13”, legend: buildFitness)
]

LineChartView(dataPoints: points)

Installation


Add this Swift package in Xcode using its Github repository url. (File > Swift Packages > Add Package Dependency…)

GitHub


View Github

#chart #swiftui
YOU MIGHT ALSO LIKE...
🧭 NavigationKit

NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. đŸ’» Installation 📩 Swift Package Manager Using Swift Package Manager, add ...

swiftui-navigation-stack

An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...

Stinsen

Simple, powerful and elegant implementation of the Coordinator pattern in SwiftUI. Stinsen is written using 100% SwiftUI which makes it ...

SwiftUI Router

With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...

FlowStacks

This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...