Pie chart using chart library with iOS swift 3

I want to use the piechart danielgindi / Charts library on Github. My codes are like this:

import UIKit import Charts class ChartViewController: UIViewController { @IBOutlet weak var pieChartView: PieChartView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0] setChart(dataPoints: months, values: unitsSold) } func setChart(dataPoints: [String], values: [Double]) { var dataEntries: [ChartDataEntry] = [] for i in 0..<dataPoints.count { let dataEntry1 = PieChartDataEntry(value: Double(i), label: dataPoints[i], data: dataPoints[i] as AnyObject) dataEntries.append(dataEntry1) } let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold") let pieChartData = PieChartData(dataSet: pieChartDataSet) pieChartView.data = pieChartData var colors: [UIColor] = [] for _ in 0..<dataPoints.count { let red = Double(arc4random_uniform(256)) let green = Double(arc4random_uniform(256)) let blue = Double(arc4random_uniform(256)) let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) colors.append(color) } pieChartDataSet.colors = colors } } 

But when I started it, split this line:

 pieChartView.data = pieChartData 

I do not use in front of any chart libraries, however I need to use one project. This library or another library is not important for me. If you know the answer to my problem, please help me solve it. Or you can advise me with another library compatible with switf 3. Thank you.

+5
source share
1 answer

I initialized pieChartView programmatically and added it to subview. The code is working fine and not crashing. I made the necessary changes and added it below:

 import UIKit import Charts class ChartViewController: UIViewController { var pieChartView: PieChartView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0] pieChartView = PieChartView(frame: self.view.bounds) self.view.addSubview(pieChartView!) setChart(dataPoints: months, values: unitsSold) } func setChart(dataPoints: [String], values: [Double]) { var dataEntries: [ChartDataEntry] = [] for i in 0..<dataPoints.count { let dataEntry1 = PieChartDataEntry(value: values[i], label: dataPoints[i]) dataEntries.append(dataEntry1) } let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold") let pieChartData = PieChartData(dataSet: pieChartDataSet) pieChartView.data = pieChartData var colors: [UIColor] = [] for _ in 0..<dataPoints.count { let red = Double(arc4random_uniform(256)) let green = Double(arc4random_uniform(256)) let blue = Double(arc4random_uniform(256)) let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) colors.append(color) } pieChartDataSet.colors = colors } } 
+5
source

Source: https://habr.com/ru/post/1264387/


All Articles