Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在swift(IOS图表)中使用daniel gindi/图表库在饼图中显示百分比符号_Ios_Swift_Pie Chart - Fatal编程技术网

如何在swift(IOS图表)中使用daniel gindi/图表库在饼图中显示百分比符号

如何在swift(IOS图表)中使用daniel gindi/图表库在饼图中显示百分比符号,ios,swift,pie-chart,Ios,Swift,Pie Chart,我使用的是图表框架(Daniel gindi)。它工作得很好,但是 如何在图表上显示%(符号) 我还尝试使用NSNumberFormatter()方法在percantage中转换数据值,但不获取%sign。 我在这里上传代码 @IBOutlet var pieChart: PieChartView! override func viewDidLoad() { super.viewDidLoad() var data = [25.0,

我使用的是图表框架(Daniel gindi)。它工作得很好,但是 如何在图表上显示%(符号)
我还尝试使用NSNumberFormatter()方法在percantage中转换数据值,但不获取%sign。
我在这里上传代码

    @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)
}
@ibchart:PieChartView!
重写func viewDidLoad(){
super.viewDidLoad()
var数据=[25.0,37.5,12.5,12.5,12.5]//饼图数据
变量状态=[“A”、“B”、“C”、“D”、“E”]//状态
设置图表(状态、值:数据)
self.pieChart.drawSliceTextEnabled=false
}
func集合图表(数据点:[字符串],值:[双精度]){
pieChart.nodata=“您需要为图表提供数据”
pieChart.noDataTextDescription=“”
self.pieChart.descriptionontext=“”
变量数据项:[ChartDataEntry]=[]
//pieChart.centerText=“”

对于0中的i.在图表上显示%符号。

只需使用下面的代码

let formatter = NSNumberFormatter()
formatter.numberStyle = .PercentStyle
formatter.maximumFractionDigits = 1
formatter.multiplier = 1.0
pieChartData.dataSet?.valueFormatter = formatter
在切片上显示值后,您将获得%符号

来源


有一个愉快的编码。

只需将这些行添加到图表中的百分比格式中即可

     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())

在最新版本的
Swift3
上,您可以对饼图执行
%
格式设置,如下所示:

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

我想,
PercentFormatter
YAxisValueFormatter
XaxiValueFormatter
可能是一个提示…您的问题解决了吗?然后关闭此问题。方法使用pieChartDataSet.valueFormatter=formatter而不是pieChartData.dataSet?.valueFormatter=formatter而不是get%signI具有类似于[6,5,3,12]的值,如果我将上述代码与
multiplier=10
一起使用,它将显示为60%、50%、30%、120%,与
multiplier=1一起使用,百分比分别为6%、5%、3%、12%。但是,我需要根据提供的值计算百分比到100。因此,我需要自己给出百分比值。你能帮我吗
    let formatter = NumberFormatter()
    formatter.numberStyle = .percent
    formatter.maximumFractionDigits = 1
    formatter.multiplier = 1.0
    chart.data?.setValueFormatter(formatter as? IValueFormatter)