Mercurial > public > lazybear
view LazyBear/UI/LineChart.swift @ 273:39428219f832
Implementing LineChart drag animation
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Wed, 17 Mar 2021 17:01:13 +0100 |
parents | 9e23e9b0ab36 |
children | 61208d7aa715 |
line wrap: on
line source
// // LineChart.swift // LazyBear // // Created by Dennis Concepción Martín on 15/3/21. // import SwiftUI struct LineChart: View { var data: [Double] @EnvironmentObject var deviceSize: DeviceSize var body: some View { if !data.isEmpty { let normalizedData = normalize(data) VStack { LineView(width: deviceSize.width, height: deviceSize.width / 3, normalizedData: normalizedData) } .frame(width: deviceSize.width, height: deviceSize.width / 3) } } func normalize(_ data: [Double]) -> [Double] { var normalData = [Double]() let min = data.min()! let max = data.max()! for value in data { let normal = (value - min) / (max - min) normalData.append(normal) } return normalData } } struct LineChart_Previews: PreviewProvider { static var previews: some View { LineChart(data: [50.0, 50.5, 51.0, 50.4, 50.8, 51.3, 51.5, 52, 51.9, 52.4]) .environmentObject(DeviceSize()) } }