gpt4 book ai didi

charts - 如何在 SwiftUI 中实现图表?

转载 作者:行者123 更新时间:2023-12-03 13:45:58 29 4
gpt4 key购买 nike

如何使用 Charts 创建图表 View SwiftUI 中的库

换句话说,如何制作 UIViewRepresentable为了它?

最佳答案

下面是一些示例代码,可以帮助您入门。不确定这是否是最佳实践,但这是让我开始使用 Charts 和 SwiftUI 的最简单方法。希望这可以帮助!

import SwiftUI
import Charts

struct GraphSwiftUI: View {
var body: some View {
GeometryReader { p in
VStack {
LineChartSwiftUI()
//use frame to change the graph size within your SwiftUI view
.frame(width: p.size.width, height: p.size.height/5, alignment: .center)
}
}
}
}

struct LineChartSwiftUI: UIViewRepresentable {
let lineChart = LineChartView()

func makeUIView(context: UIViewRepresentableContext<LineChartSwiftUI>) -> LineChartView {
setUpChart()
return lineChart
}

func updateUIView(_ uiView: LineChartView, context: UIViewRepresentableContext<LineChartSwiftUI>) {

}

func setUpChart() {
lineChart.noDataText = "No Data Available"
let dataSets = [getLineChartDataSet()]
let data = LineChartData(dataSets: dataSets)
data.setValueFont(.systemFont(ofSize: 7, weight: .light))
lineChart.data = data
}

func getChartDataPoints(sessions: [Int], accuracy: [Double]) -> [ChartDataEntry] {
var dataPoints: [ChartDataEntry] = []
for count in (0..<sessions.count) {
dataPoints.append(ChartDataEntry.init(x: Double(sessions[count]), y: accuracy[count]))
}
return dataPoints
}

func getLineChartDataSet() -> LineChartDataSet {
let dataPoints = getChartDataPoints(sessions: [0,1,2], accuracy: [100.0, 20.0, 30.0])
let set = LineChartDataSet(entries: dataPoints, label: "DataSet")
set.lineWidth = 2.5
set.circleRadius = 4
set.circleHoleRadius = 2
let color = ChartColorTemplates.vordiplom()[0]
set.setColor(color)
set.setCircleColor(color)
return set
}
}

struct GraphSwiftUI_Previews: PreviewProvider {
static var previews: some View {
GraphSwiftUI()
}
}

关于charts - 如何在 SwiftUI 中实现图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566012/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com