How to show Percentage sign in pie chart using daniel gindi/Chart library in swift(IOS Chart)

六月ゝ 毕业季﹏ 提交于 2019-12-20 10:58:25

问题


I am using the Charts framework (by Daniel gindi). It was working fine but how to show % (sign) on piechart?
I am also try use NSNumberFormatter() method for covert data value in percantage but not get % sign.
I am upload code here

    @IBOutlet var pieChart: PieChartView!
    override func viewDidLoad() {
            super.viewDidLoad()
            var data = [25.0,37.5,12.5,12.5,12.5] // pie chart data 
            var status = ["A","B","C","D","E"] // status
            setChart(status, values: data)
            self.pieChart.drawSliceTextEnabled = false

    }
    func setChart(dataPoints: [String], values: [Double]) {

            pieChart.noDataText = "you need to provide data for chart"
            pieChart.noDataTextDescription = ""
            self.pieChart.descriptionText = ""

            var dataEntries: [ChartDataEntry] = []
            //pieChart.centerText = " "
            for i in 0..<dataPoints.count {

                let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
                dataEntries.append(dataEntry)

            }

            let pieChartDataSet = PieChartDataSet(yVals: dataEntries, label: "")

            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

            }

            let pieChartData = PieChartData(xVals: dataPoints, dataSet: pieChartDataSet)

            pieChart.data = pieChartData
            pieChart.animate(yAxisDuration: 2.0, easingOption: .EaseInOutBack)
}

Output:=>


回答1:


To show % sign on pieChart.

Download Example Project

Just use this below code.

let formatter = NSNumberFormatter()
formatter.numberStyle = .PercentStyle
formatter.maximumFractionDigits = 1
formatter.multiplier = 1.0
pieChartData.dataSet?.valueFormatter = formatter

You will get % sign after your value display on slice.

Source https://github.com/danielgindi/Charts

Have a happy coding.




回答2:


On Swift3 with latest version of charts you can do % formatting on pie chart as followings:

    let formatter = NumberFormatter()
    formatter.numberStyle = .percent
    formatter.maximumFractionDigits = 1
    formatter.multiplier = 1.0
    pieChartData.setValueFormatter(DefaultValueFormatter(formatter:formatter))



回答3:


Just add these line to format the percentage in PieChart.

     let formatter = NSNumberFormatter()
                        formatter.numberStyle = .PercentStyle
                        formatter.maximumFractionDigits = 1
                        formatter.multiplier = 1.0
                        pieChartData.setValueFormatter(formatter)
// text color of percentage label
    slcCell.pieChartView.data?.setValueTextColor(UIColor.clearColor())



回答4:


    let formatter = NumberFormatter()
    formatter.numberStyle = .percent
    formatter.maximumFractionDigits = 1
    formatter.multiplier = 1.0
    chart.data?.setValueFormatter(formatter as? IValueFormatter)


来源:https://stackoverflow.com/questions/37965016/how-to-show-percentage-sign-in-pie-chart-using-daniel-gindi-chart-library-in-swi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!