Files
ChartView/Sources/SwiftUICharts/Base/Chart/ChartData.swift
Andras Samu ac7680320f feat(core): refactoring chart dispalying
now it is possible to add background lines precisely as charts are displayed at correct size
also rewrote basics to conform with Shapes and Animatable protocol
2021-04-04 15:54:15 +02:00

41 lines
882 B
Swift

import SwiftUI
/// An observable wrapper for an array of data for use in any chart
public class ChartData: ObservableObject {
@Published public var data: [(String, Double)] = []
var points: [Double] {
data.map { $0.1 }
}
var values: [String] {
data.map { $0.0 }
}
var normalisedPoints: [Double] {
points.map { $0 / (points.max() ?? 1.0) }
}
var normalisedRange: Double {
(normalisedPoints.max() ?? 0.0) - (normalisedPoints.min() ?? 0.0)
}
var isInNegativeDomain: Bool {
(points.min() ?? 0.0) < 0
}
/// Initialize with data array
/// - Parameter data: Array of `Double`
public init(_ data: [Double]) {
self.data = data.map { ("", $0) }
}
public init(_ data: [(String, Double)]) {
self.data = data
}
public init() {
self.data = []
}
}