如何在ios-chart中为数据添加"%"

OuS*_*uSS 7 swift ios-charts

图表,这是我的代码:

private func setChart(pieChartView: PieChartView, values: [Double]) {

    var dataEntries: [PieChartDataEntry] = []

    let dataPoints = ["Mar","Apr","May"]

    for i in 0..<dataPoints.count {
        let dataEntry = PieChartDataEntry(value: values[i], label: dataPoints[i])
        dataEntries.append(dataEntry)
    }

    let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "")
    pieChartDataSet.colors = [UIColor(red: 47/255, green: 164/255, blue: 59/255, alpha: 1.0),UIColor(red: 17/255, green: 128/255, blue: 127/255, alpha: 1.0),UIColor.orange]
    let pieChartData = PieChartData(dataSet: pieChartDataSet)
    pieChartView.data = pieChartData
    pieChartView.centerText = "Amount Spent"
    pieChartView.chartDescription?.text = ""
    pieChartView.usePercentValuesEnabled = true
    pieChartView.legend.horizontalAlignment = .center

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何在PieChart数据中添加"%"?NSNumberFormatter()不再可用

- - - - - - - -解 - - - - - - - -

我为有相同问题的每个人发布此解决方案.我是从chart-ios githup得到的:

private func setChart(pieChartView: PieChartView, values: [Double]) {

    var dataEntries = [ChartDataEntry]()

    let dataPoints = ["Mar","Apr","May"]

    for i in 0..<dataPoints.count {
        let dataEntry = PieChartDataEntry(value: values[i], label: dataPoints[i])
        dataEntries.append(dataEntry)
    }

    let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "")
    let green = UIColor(red: 47/255, green: 164/255, blue: 59/255, alpha: 1.0)
    let blue = UIColor(red: 17/255, green: 128/255, blue: 127/255, alpha: 1.0)
    pieChartDataSet.colors = [green, blue, .orange]
    let pieChartData = PieChartData(dataSet: pieChartDataSet)
    let formatter = NumberFormatter()
    formatter.numberStyle = .percent
    formatter.maximumFractionDigits = 2
    formatter.multiplier = 1.0
    formatter.percentSymbol = "%"
    pieChartData.setValueFormatter(DefaultValueFormatter(formatter: formatter))
    pieChartView.data = pieChartData
    pieChartView.centerText = "Amount Spent"
    pieChartView.chartDescription?.text = ""
    pieChartView.usePercentValuesEnabled = true
    pieChartView.legend.horizontalAlignment = .center
    pieChartView.drawEntryLabelsEnabled = false
    pieChartView.holeRadiusPercent = 0.55
    pieChartView.highlightPerTapEnabled = false
    pieChartView.animate(yAxisDuration: 2.0, easingOption: .easeInBack)
}
Run Code Online (Sandbox Code Playgroud)

Has*_*sya 3

在此输入图像描述

请参考下面的代码,我已经添加了%。

import UIKit

class ViewController: UIViewController {

    
        @IBOutlet weak var pieChartView: PieChartView!
        override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
        let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]
        
        setChart(months, values: unitsSold)
            
    
            
        
    }

    
    func setChart(dataPoints: [String], values: [Double]) {
        
        var dataEntries: [ChartDataEntry] = []
        
        for i in 0..<dataPoints.count {
            let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
            dataEntries.append(dataEntry)
        }
        
        let pieChartDataSet = PieChartDataSet(yVals: dataEntries, label: "Units Sold")
        
        let formatter = NSNumberFormatter()
        formatter.numberStyle = .PercentStyle
        formatter.maximumFractionDigits = 1
        formatter.multiplier = 1.0
      
        
        let pieChartData = PieChartData(xVals: dataPoints, dataSet: pieChartDataSet)

        pieChartData.dataSet?.valueFormatter = formatter
        
        
        pieChartView.data = pieChartData
       
        pieChartView.holeColor = UIColor.clearColor()
      
      //  pieChartView.holeRadiusPercent = 0.95
        
        pieChartView.centerText =  "Hello\nThis is Pie chart"

 pieChartView.usePercentValuesEnabled = true
        
        
        var colors: [UIColor] = []
        
        for i in 0..<dataPoints.count {
            let red = Double(arc4random_uniform(255))
            let green = Double(arc4random_uniform(255))
            let blue = Double(arc4random_uniform(255))
            
            let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
            colors.append(color)
        }
        
        pieChartDataSet.colors = colors
        
        
        
        
    }


    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

   
}
Run Code Online (Sandbox Code Playgroud)