Search code examples
iosswiftxcodechartspie-chart

Show only numbers in PieChartView from (key, value)


I am using PieChartView to draw following Pie chart in my app. My requirement is to show only %(percentage) not the key name.

enter image description here

This is my code to draw pie chart in view

func drawPieChart(pieChart: PieChartView, data: [String: Double]) -> Void {

    //Setup constraints first

    var dataEntries = [PieChartDataEntry]()

    var total = 0.0
    for (key, val) in data {
        total += val
    }

    for (key, val) in data {
        let percent = (val / total)
        let entry = PieChartDataEntry(value: percent, label: key)
        dataEntries.append(entry)
    }

    let chartDataSet = PieChartDataSet(values: dataEntries, label: "")
    chartDataSet.colors = ChartColorTemplates.bookingPieChart()
    chartDataSet.sliceSpace = 2
    chartDataSet.selectionShift = 5

    let chartData = PieChartData(dataSet: chartDataSet)
    let formatter = NumberFormatter()
    formatter.numberStyle = .percent
    formatter.maximumFractionDigits = 0
    chartData.setValueFormatter(DefaultValueFormatter(formatter: formatter))
    pieChart.data = chartData
}

Solution

  • Hi I think if you don't want to show the key name you need to send an empty string in the label

    Change

     let entry = PieChartDataEntry(value: percent, label: key)
    

    to

     let entry = PieChartDataEntry(value: percent, label: "")