【问题标题】:How to show Percentage sign in pie chart using daniel gindi/Chart library in swift(IOS Chart)如何在 swift 中使用 daniel gindi/Chart 库在饼图中显示百分比符号(IOS 图表)
【发布时间】:2016-06-22 10:14:19
【问题描述】:

我正在使用 Charts 框架(作者 Daniel gindi)。它工作正常,但 如何在饼图上显示 %(符号)?
我也尝试使用 NSNumberFormatter() 方法来获取百分比中的隐蔽数据值,但没有得到 % 符号。
我在这里上传代码

    @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)
}

输出:=>

【问题讨论】:

  • 我猜PercentFormatterYAxisValueFormatterXAxisValueFormatter 可能是一个提示...
  • 您的问题解决了吗?然后关闭这个问题。

标签: ios swift pie-chart


【解决方案1】:

Swift3 和最新版本的charts 上,您可以在饼图上进行% 格式如下:

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

【讨论】:

    【解决方案2】:

    在饼图上显示 % 符号。

    Download Example Project

    只需使用下面的代码。

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

    在切片上显示值后,您将获得 % 符号。

    来源 https://github.com/danielgindi/Charts

    【讨论】:

    • 方法使用 pieChartDataSet.valueFormatter = formatter 而不是 pieChartData.dataSet?.valueFormatter = formatter 而不是得到 % 符号
    • 我有 [6, 5, 3, 12] 之类的值,如果我将上述代码与 multiplier = 10 一起使用,它会显示为 60%、50%、30%、120%,与 @987654327 @ 百分比为 6%、5%、3%、12%。但是,我需要根据提供的值计算到 100 的百分比。所以,我需要自己给出百分比值。你能帮我吗
    【解决方案3】:

    只需添加这些行以格式化 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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-14
        • 1970-01-01
        • 1970-01-01
        • 2016-07-24
        • 1970-01-01
        • 2015-03-02
        • 1970-01-01
        相关资源
        最近更新 更多