Tüm açık kaynak paketler
ArayüzSwift

SwiftUI-Data-Visualization

iOS ve macOS için SwiftUI'da Swift Charts üzerine kurulu istatistik, finans ve canlı veri grafikleri.

7YıldızSon Sürüm: v2.0.1Güncellendi: 15 Ekim 2026
Platformlar:iOS 17macOS 14

Lisans: MIT

Bağımlılığı olmayan bir Swift paketi: on grafik view'ı (zaman serisi, histogram, box plot, trend çizgili scatter, candlestick, waterfall, heatmap, radar, treemap ve canlı ticker) ve bunların arkasındaki public analiz tipleri: Histogram, BoxPlotSummary, LinearRegression, MovingAverage, NiceScale, TreemapLayout ve Largest-Triangle-Three-Buckets downsampling. Sonlu olmayan girdiler atlanır, aşırı değerler belgelenmiş bir sınırda çizilir; test süiti her grafiği bu aşırı girdilerle çiziyor.

Özellikler

  • TimeSeriesChart her seriyi LTTB ile 1.000 noktaya indirir, hareketli ortalama çizer, görünür bir zaman penceresinde kaydırılır ve seçilen tarihi bildirir
  • İstatistik grafikleri: HistogramChart (Sturges, Freedman–Diaconis, sabit genişlik ya da sayı), Tukey whisker'lı BoxPlotChart, en küçük kareler trend çizgili ScatterChart
  • Finans grafikleri: Candle.aggregate(_:interval:) ile CandlestickChart ve ara toplamlı WaterfallChart
  • HeatmapChart, RadarChart ve squarified TreemapChart; radar ve ticker Canvas ile, treemap düz SwiftUI view'larıyla çiziyor; üçü de VoiceOver için AudioGraphDescriptor ekliyor
  • RingBuffer ve gözlemlenebilir LiveSeries ile LiveTickerChart'a canlı veri
  • Analiz katmanı public ve Sendable; kendi Chart'ınızda ya da main actor dışında kullanılabilir
  • .chartPalette(_:) ile verilen paletler, renk körlüğüne uygun bir palet dahil; ChartExport bir grafiği PNG verisine ya da CGImage'a çevirir
  • Analiz tiplerine nan, sonsuz, Int.max, aşırı aralıklar ve aşırı tarihler veren ve her grafiği bunlarla çizen bir test süiti

Hızlı Başlangıç

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}

Kurulum

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

Ekran Görüntüleri

İki sunucunun zaman serisi grafiği ve kesikli hareketli ortalamalar, açık tema
İki sunucunun zaman serisi grafiği ve kesikli hareketli ortalamalar, koyu tema
iOS ve Android için gecikme histogramı ve box plot, açık tema
iOS ve Android için gecikme histogramı ve box plot, koyu tema
Boy ve kilo scatter grafiği ve trend çizgisi, açık tema
Boy ve kilo scatter grafiği ve trend çizgisi, koyu tema
Altı saatlik mumlarla candlestick grafiği ve kâr waterfall'u, açık tema
Altı saatlik mumlarla candlestick grafiği ve kâr waterfall'u, koyu tema
Gün ve saate göre commit heatmap'i, hücre değerleriyle, açık tema
Gün ve saate göre commit heatmap'i, hücre değerleriyle, koyu tema
İki modeli karşılaştıran radar grafiği ve depolama treemap'i, açık tema
İki modeli karşılaştıran radar grafiği ve depolama treemap'i, koyu tema
ChartGallery örnek uygulamasının zaman serisi ekranı, iPhone simülatöründe, açık tema
ChartGallery örnek uygulamasının zaman serisi ekranı, iPhone simülatöründe, koyu tema
ChartGallery örnek uygulamasının canlı veri ekranı, iPhone simülatöründe, açık tema
ChartGallery örnek uygulamasının canlı veri ekranı, iPhone simülatöründe, koyu tema

Zaman Çizelgesi

  1. Repo bar, pie, scatter ve candlestick view'larıyla açıldı

  2. 1.0.0 sürümü yayınlandı; kaynak kodu güncel Xcode sürümleriyle derlenmiyordu

  3. Eski modüller kaldırıldı, paket küçük bir yer tutucuya indirildi

  4. Swift Charts üzerinde 2.0.0 olarak yeniden kuruldu; arşivlenen SwiftUI-Charts-Pro'nun algoritmaları ve grafikleri testleriyle birlikte taşındı

  5. 2.0.1: aşırı büyük sonlu değerler Swift Charts'a verilmeden önce sınıra çekildi, aynı tarihli mumların hepsi çiziliyor

Bağlantılar

Birleştirilen Depolar

İlgili Yazı

Yazıyı Oku