加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 如何在ios-chart中为数据添加“%”

发布时间:2020-12-14 05:01:54 所属栏目:百科 来源:网络整理
导读:图表,这是我的代码: 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:
图表,这是我的代码:

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,UIColor.orange]
    let pieChartData = PieChartData(dataSet: pieChartDataSet)
    pieChartView.data = pieChartData
    pieChartView.centerText = "Amount Spent"
    pieChartView.chartDescription?.text = ""
    pieChartView.usePercentValuesEnabled = true
    pieChartView.legend.horizontalAlignment = .center

}

enter image description here

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

– – – – – – – -解 – – – – – – – –

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

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

    var dataEntries = [ChartDataEntry]()

    let dataPoints = ["Mar",label: "")
    let green = UIColor(red: 47/255,alpha: 1.0)
    let blue = UIColor(red: 17/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)
}

解决方法

enter image description here

请参考下面的代码,我添加了%.

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","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 =  "HellonThis 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.
    }


}

如果我可以帮助你,请告诉我.

有一个快乐的编码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读