SwiftUI-Data-Visualization
iOS ve macOS için SwiftUI'da Swift Charts üzerine kurulu istatistik, finans ve canlı veri grafikleri.
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ıç
1import SwiftUI2import SwiftUIDataVisualization3 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_40010 )11 12 var body: some View {13 TimeSeriesChart(steps)14 .frame(height: 240)15 .padding()16 }17}Kurulum
Swift Package Manager
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
1https://github.com/muhittincamdali/SwiftUI-Data-Visualization.gitEkran Görüntüleri
















Zaman Çizelgesi
Repo bar, pie, scatter ve candlestick view'larıyla açıldı
1.0.0 sürümü yayınlandı; kaynak kodu güncel Xcode sürümleriyle derlenmiyordu
Eski modüller kaldırıldı, paket küçük bir yer tutucuya indirildi
Swift Charts üzerinde 2.0.0 olarak yeniden kuruldu; arşivlenen SwiftUI-Charts-Pro'nun algoritmaları ve grafikleri testleriyle birlikte taşındı
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