Tous les paquets open source
InterfaceSwift

SwiftUI-Data-Visualization

Graphiques statistiques, financiers et en direct pour SwiftUI sur iOS et macOS, construits sur Swift Charts.

7ÉtoilesDernière version: v2.0.1Mis à jour: 15 octobre 2026
Plateformes:iOS 17macOS 14

Licence: MIT

Un package Swift sans dépendance avec dix vues de graphique — série temporelle, histogramme, boîte à moustaches, nuage de points avec ligne de tendance, chandelier, cascade, carte thermique, radar, carte arborescente et ticker en direct — et les types d'analyse publics qui les sous-tendent : Histogram, BoxPlotSummary, LinearRegression, MovingAverage, NiceScale, TreemapLayout et le sous-échantillonnage Largest-Triangle-Three-Buckets. Les entrées non finies sont laissées de côté et les valeurs extrêmes sont dessinées à une limite documentée, et la suite de tests rend chaque graphique avec ces entrées extrêmes.

Fonctionnalités

  • TimeSeriesChart sous-échantillonne chaque série à 1000 points avec LTTB, dessine des moyennes mobiles, défile dans une fenêtre temporelle visible et signale la date sélectionnée
  • Graphiques statistiques : HistogramChart (Sturges, Freedman–Diaconis, largeur ou nombre fixe), BoxPlotChart avec moustaches de Tukey, ScatterChart avec une ligne de tendance aux moindres carrés
  • Graphiques financiers : CandlestickChart avec Candle.aggregate(_:interval:) et WaterfallChart avec des totaux
  • HeatmapChart, RadarChart et un TreemapChart squarifié ; radar et ticker dessinent avec Canvas, treemap avec de simples vues SwiftUI ; les trois attachent un AudioGraphDescriptor pour VoiceOver
  • Données en direct avec RingBuffer et le LiveSeries observable alimentant LiveTickerChart
  • L'analyse est publique et Sendable, donc elle peut être utilisée dans votre propre Chart ou hors de l'acteur principal
  • Palettes définies via .chartPalette(_:), y compris une palette adaptée au daltonisme ; ChartExport rend un graphique en données PNG ou en CGImage
  • Une suite de tests qui fournit nan, l'infini, Int.max, des plages extrêmes et des dates extrêmes aux types d'analyse et rend chaque graphique avec eux

Démarrage rapide

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

Captures d'écran

Graphique en série temporelle de deux serveurs avec des moyennes mobiles en pointillés, mode clair
Graphique en série temporelle de deux serveurs avec des moyennes mobiles en pointillés, mode sombre
Histogramme et boîte à moustaches de latence pour iOS et Android, mode clair
Histogramme et boîte à moustaches de latence pour iOS et Android, mode sombre
Nuage de points taille et poids avec une ligne de tendance, mode clair
Nuage de points taille et poids avec une ligne de tendance, mode sombre
Graphique en chandeliers de bougies de six heures et cascade de profit, mode clair
Graphique en chandeliers de bougies de six heures et cascade de profit, mode sombre
Carte thermique des commits par jour de la semaine et heure avec les valeurs affichées, mode clair
Carte thermique des commits par jour de la semaine et heure avec les valeurs affichées, mode sombre
Graphique radar comparant deux modèles et une carte arborescente de stockage, mode clair
Graphique radar comparant deux modèles et une carte arborescente de stockage, mode sombre
Écran de série temporelle de l'app d'exemple ChartGallery sur un simulateur iPhone, mode clair
Écran de série temporelle de l'app d'exemple ChartGallery sur un simulateur iPhone, mode sombre
Écran de données en direct de l'app d'exemple ChartGallery sur un simulateur iPhone, mode clair
Écran de données en direct de l'app d'exemple ChartGallery sur un simulateur iPhone, mode sombre

Chronologie

  1. Dépôt ouvert avec des vues barres, camembert, nuage de points et chandelier

  2. Version 1.0.0 publiée ; ses sources ne compilaient pas avec les versions actuelles de Xcode

  3. Modules hérités supprimés et le package réduit à un petit espace réservé

  4. Reconstruit sur Swift Charts en version 2.0.0, reprenant les algorithmes et graphiques testés de SwiftUI-Charts-Pro, qui a été archivé

  5. 2.0.1 : valeurs finies extrêmes bornées avant Swift Charts, chaque chandelle à même date dessinée

Liens

Dépôts fusionnés

Article associé

Lire l'article