Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove Value Labels from iOS Charts Pie Chart

I have a pie chart and I'm trying to remove the value labels from the chart as they are spilling on to each other, but no code seems to take it away.

This is the code I've been using to try to remove it:

chartIMG.drawEntryLabelsEnabled = false

but it does not seem to work.

My code for creating a chart:

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

    var dataEntries: [ChartDataEntry] = []

    for i in 0..<dataPoints.count {
        let dataEntry1 = PieChartDataEntry(value: Double(i), label: dataPoints[i], data:  dataPoints[i] as AnyObject)

        dataEntries.append(dataEntry1)
    }
    print(dataEntries[0].data)
    let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Symptoms")
    let pieChartData = PieChartData(dataSet: pieChartDataSet)
    chartIMG.data = pieChartData
    chartIMG.drawEntryLabelsEnabled = false
    chartIMG.chartDescription?.text = ""
    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
}

Is this the only way to remove it or am I doing something wrong?

like image 988
Chris Campbell Avatar asked Apr 25 '18 21:04

Chris Campbell


2 Answers

If you need to disable drawing values of Data Set Entries use this

pieChartDataSet.drawValuesEnabled = false

If you need to disable drawing values on some Axis use this:

chartIMG.rightAxis.drawLabelsEnabled = false
chartIMG.leftAxis.drawLabelsEnabled = false
chartIMG.xAxis.drawLabelsEnabled = false
chartIMG.rightAxis.drawLabelsEnabled = false
like image 112
Dmitry Avatar answered Nov 15 '22 07:11

Dmitry


I know this is an old post but I searched forever to figure this problem out. I think with the last version released, they disabled access to drawLabelsEnabled which makes turning off the value labels on the pie chart nearly impossible.

The way I forced it to not draw labels was to change line 335 in Charts.xcodeproj > Source > Charts > Renderers > PieChartRenderer.swift:

 let drawValues = dataSet.isDrawValuesEnabled

to

 let drawValues = false
like image 44
Jordan Avatar answered Nov 15 '22 07:11

Jordan