简体   繁体   中英

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?

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

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

Swift 5.0+ 图表 v3.5+

pieChartView.data?.setDrawValues(false)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM