You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中Charts库饼图:隐藏元素数值及黑点内数据的实现问题

实现无文本的红绿饼图(Swift Charts)

没问题,我帮你调整代码,实现只显示红、绿色块,完全隐藏所有文本和数值的饼图。你需要调整几个关键配置项,我把修改后的完整代码和说明给你:

关键修改点

  • 关闭切片上的数值绘制:不让每个饼块显示对应的百分比/数值
  • 隐藏图例(就是你提到的“黑点”相关标记):移除饼图旁的小色块和文本
  • 关闭中心文本与洞的冗余显示(按需调整)

修改后的完整代码

import Charts
class ViewController: UIViewController {
    @IBOutlet weak var pieChart: PieChartView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 关闭中心文本显示
        pieChart.drawCenterTextEnabled = false
        // 如果不需要饼图中间的洞,打开下面这行;需要洞的话注释掉即可
        pieChart.drawHoleEnabled = false
        
        // 彻底隐藏图例(包括标记和文本)
        pieChart.legend.enabled = false
        
        let unitsSold = [60.0, 40.0]
        setChart(values: unitsSold)
    }
    
    func setChart(values: [Double]) {
        var dataEntries: [ChartDataEntry] = []
        
        // 循环创建数据条目,简化代码
        for (_, value) in values.enumerated() {
            let entry = PieChartDataEntry(value: value)
            dataEntries.append(entry)
        }
        
        let pieChartDataSet = PieChartDataSet(entries: dataEntries, label: nil)
        // 禁止绘制饼块上的数值
        pieChartDataSet.drawValuesEnabled = false
        
        let pieChartData = PieChartData(dataSet: pieChartDataSet)
        pieChart.data = pieChartData
        
        // 设置红绿配色
        let colors: [UIColor] = [.red, .green]
        pieChartDataSet.colors = colors
    }
}

代码说明

  • pieChart.legend.enabled = false:直接隐藏图例模块,包括那些小标记(你说的“黑点”)和关联文本
  • pieChartDataSet.drawValuesEnabled = false:关闭每个饼块上的数值绘制,彻底移除60、40这类数字显示
  • pieChart.drawHoleEnabled = false:如果不需要饼图中间的空心洞,就打开这行;想要保留洞的话,只需要确保drawCenterTextEnabled为false即可
  • 我简化了数据条目的创建逻辑,用循环替代手动创建,代码更整洁易维护

这样调整后,你的饼图就只会显示红色和绿色的色块,没有任何文本和多余标记啦!

内容的提问来源于stack exchange,提问作者Игорь Иванов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:30:35