Search code examples
iosswiftios-charts

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?


Solution

  • 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