从iOS图表饼图中删除值标签

时间:2018-04-25 21:57:18

标签: ios swift ios-charts

我有一个饼图,我正试图从图表中删除值标签,因为它们互相溢出,但似乎没有任何代码可以将其删除。

这是我用来尝试删除它的代码:

chartIMG.drawEntryLabelsEnabled = false

但它似乎不起作用。

我创建图表的代码:

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
}

这是删除它的唯一方法还是我做错了什么?

3 个答案:

答案 0 :(得分:4)

如果您需要禁用数据集条目的绘图值,请使用此

pieChartDataSet.drawValuesEnabled = false

如果您需要在某些Axis上禁用绘图值,请使用:

chartIMG.rightAxis.drawLabelsEnabled = false
chartIMG.leftAxis.drawLabelsEnabled = false
chartIMG.xAxis.drawLabelsEnabled = false
chartIMG.rightAxis.drawLabelsEnabled = false

答案 1 :(得分:2)

我知道这是一篇过时的文章,但我一直搜寻以找出此问题。我认为在发布的最新版本中,他们禁用了对drawLabelsEnabled的访问,这使得关闭饼图上的值标签几乎变得不可能。

我强迫它不绘制标签的方式是更改Charts.xcodeproj>源>图表>渲染器> PieChartRenderer.swift中的第335行:

 let drawValues = dataSet.isDrawValuesEnabled

 let drawValues = false

答案 2 :(得分:0)

Swift 5.0+ 图表 v3.5+

pieChartView.data?.setDrawValues(false)