Alle Open-Source-Pakete
UISwift

SwiftUI-Data-Visualization

Statistik-, Finanz- und Live-Charts für SwiftUI auf iOS und macOS, aufgebaut auf Swift Charts.

7SterneNeueste Version: v2.0.1Aktualisiert: 15. Oktober 2026
Plattformen:iOS 17macOS 14

Lizenz: MIT

Ein abhängigkeitsfreies Swift-Package mit zehn Chart-Views — Zeitreihe, Histogramm, Box-Plot, Scatter mit Trendlinie, Candlestick, Waterfall, Heatmap, Radar, Treemap und Live-Ticker — und den öffentlichen Analyse-Typen dahinter: Histogram, BoxPlotSummary, LinearRegression, MovingAverage, NiceScale, TreemapLayout und Largest-Triangle-Three-Buckets-Downsampling. Nicht endliche Eingaben werden ausgelassen, Extremwerte werden an einer dokumentierten Grenze gezeichnet, und die Test-Suite rendert jedes Chart mit diesen Extremwerten.

Funktionen

  • TimeSeriesChart reduziert jede Serie mit LTTB auf 1.000 Punkte, zeichnet gleitende Durchschnitte, scrollt durch ein sichtbares Zeitfenster und meldet das ausgewählte Datum
  • Statistik-Charts: HistogramChart (Sturges, Freedman–Diaconis, feste Breite oder Anzahl), BoxPlotChart mit Tukey-Whiskern, ScatterChart mit einer Trendlinie nach kleinsten Quadraten
  • Finanz-Charts: CandlestickChart mit Candle.aggregate(_:interval:) und WaterfallChart mit Zwischensummen
  • HeatmapChart, RadarChart und ein squarified TreemapChart; Radar und Ticker zeichnen mit Canvas, Treemap mit einfachen SwiftUI-Views; alle drei hängen einen AudioGraphDescriptor für VoiceOver an
  • Live-Daten mit RingBuffer und der observablen LiveSeries, die LiveTickerChart versorgt
  • Die Analyse ist public und Sendable und kann daher in einem eigenen Chart oder außerhalb des Main Actors verwendet werden
  • Paletten werden über .chartPalette(_:) gesetzt, darunter eine farbenblindsichere Palette; ChartExport rendert ein Chart zu PNG-Daten oder einem CGImage
  • Eine Test-Suite, die den Analyse-Typen nan, infinity, Int.max, extreme Bereiche und extreme Daten übergibt und jedes Chart damit rendert

Schnellstart

swift
1import SwiftUI
2import SwiftUIDataVisualization
3 
4struct ContentView: View {
5 let steps = TimeSeries(
6 name: "Steps",
7 values: [4_200, 8_100, 6_900, 10_400, 7_800, 12_100, 9_300],
8 start: .now.addingTimeInterval(-6 * 86_400),
9 interval: 86_400
10 )
11 
12 var body: some View {
13 TimeSeriesChart(steps)
14 .frame(height: 240)
15 .padding()
16 }
17}

Installation

Swift Package Manager

swift
1dependencies: [
2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Data-Visualization.git", from: "2.0.0")
3],
4targets: [
5 .target(name: "YourApp", dependencies: [
6 .product(name: "SwiftUIDataVisualization", package: "SwiftUI-Data-Visualization")
7 ])
8]

Xcode

text
1https://github.com/muhittincamdali/SwiftUI-Data-Visualization.git

Screenshots

Zeitreihen-Chart zweier Server mit gestrichelten gleitenden Durchschnitten, Light Mode
Zeitreihen-Chart zweier Server mit gestrichelten gleitenden Durchschnitten, Dark Mode
Latenz-Histogramm und Box-Plot für iOS und Android, Light Mode
Latenz-Histogramm und Box-Plot für iOS und Android, Dark Mode
Scatter-Chart von Größe und Gewicht mit Trendlinie, Light Mode
Scatter-Chart von Größe und Gewicht mit Trendlinie, Dark Mode
Candlestick-Chart mit Sechs-Stunden-Kerzen und einem Profit-Waterfall, Light Mode
Candlestick-Chart mit Sechs-Stunden-Kerzen und einem Profit-Waterfall, Dark Mode
Heatmap von Commits nach Wochentag und Stunde mit angezeigten Werten, Light Mode
Heatmap von Commits nach Wochentag und Stunde mit angezeigten Werten, Dark Mode
Radar-Chart zum Vergleich zweier Modelle und eine Speicher-Treemap, Light Mode
Radar-Chart zum Vergleich zweier Modelle und eine Speicher-Treemap, Dark Mode
Zeitreihen-Screen der Beispiel-App ChartGallery im iPhone-Simulator, Light Mode
Zeitreihen-Screen der Beispiel-App ChartGallery im iPhone-Simulator, Dark Mode
Live-Daten-Screen der Beispiel-App ChartGallery im iPhone-Simulator, Light Mode
Live-Daten-Screen der Beispiel-App ChartGallery im iPhone-Simulator, Dark Mode

Zeitleiste

  1. Repository eröffnet mit Bar-, Pie-, Scatter- und Candlestick-Views

  2. Version 1.0.0 veröffentlicht; ihr Quellcode ließ sich mit aktuellen Xcode-Versionen nicht bauen

  3. Alte Module entfernt und das Package auf einen kleinen Platzhalter reduziert

  4. Auf Swift Charts als 2.0.0 neu aufgebaut, unter Übernahme der getesteten Algorithmen und Charts von SwiftUI-Charts-Pro, das archiviert wurde

  5. 2.0.1: extreme endliche Werte werden vor Swift Charts begrenzt, jede Kerze mit gleichem Datum wird gezeichnet

Links

Zusammengeführte Repositories

Verwandter Artikel

Artikel lesen