swift_柱状图的制作

这篇博客介绍了如何在Swift中创建柱状图,通过引入Charts库,创建数据条目并设置颜色,然后创建数据集和柱形图数据对象,设置柱形的宽度,以及调整坐标轴、拖拽和缩放等特性,最终将图表添加到视图中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

podfile 中引入Charts

 

import UIKit
import Charts
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let  values1:[Double] =  [8,67,53,66,33,53]
        let  values2:[Double] =  [8,34,34,66,66,53]
        let  values3:[Double] =  [8,22,53,22,55,53]
        //依次创建三个图片数据j记录
        var entries1:[ChartDataEntry] = Array()
        var entries2:[ChartDataEntry] = Array()
        var entries3:[ChartDataEntry] = Array()
        //将数组中的数字添加到图标数据记录中
        for (i, value) in values1.enumerated() {
            entries1.append(BarChartDataEntry.init(x: Double(i), y: value))
        }
        for (i, value) in values2.enumerated() {
            entries2.append(BarChartDataEntry.init(x: Double(i), y: value))
        }
        for (i, value) in values3.enumerated() {
            entries3.append(BarChartDataEntry.init(x: Double(i), y: value))
        }
        
        //创建一个数据集,并设置数据集的值域和标签文字,同时设置该数据集对应祝星的填充颜色
        let dataSet1 = BarChartDataSet.init(values: entries1, label: "company A")
        dataSet1.setColor(NSUIColor.init(red: 229/255.0, green: 140/255.0, blue: 30/255.0, alpha: 1))
        let dataSet2 = BarChartDataSet.init(values: entries2, label: "company A")
        dataSet2.setColor(NSUIColor.init(red: 229/255.0, green: 140/255.0, blue: 154/255.0, alpha: 1))
        let dataSet3 = BarChartDataSet.init(values: entries3, label: "company A")
        dataSet3.setColor(NSUIColor.init(red: 220/255.0, green: 12/255.0, blue: 154/255.0, alpha: 1))
        //初始化一个柱形图表数据对象,初始化对象的数据集属性。
        let data = BarChartData.init(dataSets: [dataSet1,dataSet2,dataSet3])
        //设置柱形的宽度
        data.barWidth = 0.25
        //设置图标视图
        let  chart = BarChartView.init(frame: CGRect.init(x: 0, y: 40, width: 560, height: 240))
        chart.backgroundColor =  NSUIColor.clear
        //设置左右两侧的坐标轴的最想值都是0
        chart.leftAxis.axisMinimum = 0.0
        chart.rightAxis.axisMaximum = 0.0
        //将图标数据对象,设置为柱形图标视图的数据属性
        chart.data = data
        //强制将图标的s子元素进行组合,并忽略他们在屏幕上的位置
        chart.shouldGroupAccessibilityChildren = true
        //设置图表在水平方向上,可以拖拽的距离
        chart.setDragOffsetX(100)
        //允许图表可以被缩放
        chart.setScaleEnabled(true)
        //在水平轴的两侧,各添加柱形一半的宽度,使所有的柱形都可以被全部显示
        chart.fitBars = true
        //将数据集组合起来,并设置柱形组的水平轴的起点位置为-1,组间距为0.2,柱形的间距为0.05.
         chart.groupBars(fromX: -1, groupSpace: 0.2, barSpace: 0.05)
        self.view.addSubview(chart)
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值