iOS-Charts柱状图常用特性

86 篇文章 1 订阅

在这里插入图片描述

		let leftAxisMaxWidth:CGFloat = 60
        var values = [Double]()
        for i in 0...30 {
            values.append(Double(i))
        }
        var entries: [ChartDataEntry] = Array()
        var xValues: [String] = Array()
        let gridWidth:CGFloat = 20
        let xAxisCount:Int = Int((self.view.frame.size.width - leftAxisMaxWidth - 150)/gridWidth)
        for (i, value) in values.enumerated()
        {
            entries.append(BarChartDataEntry.init(value: value, xIndex: i))
            xValues.append("\(i)")
        }
        
        
        
        
        ///dataSet
        dataSet = BarChartDataSet(yVals: entries, label: "Bar chart unit test data")
        ///圆柱颜色
        dataSet.setColor(.red)
        ///高亮显示
        dataSet.highlightEnabled = true
        ///高亮显示颜色
        dataSet.highlightColor = .yellow
        ///高亮颜色透明度
        dataSet.highlightAlpha = 0.6
        
        //圆柱边宽。默认0.0(不设置)
//        dataSet.barBorderWidth = 3
        //圆柱边色。默认black(不设置)
//        dataSet.barBorderColor = .blue
        //圆柱阴影色。(不设置)
//        dataSet.barShadowColor = .green
        
        
        
        chartView = BarChartView()
        
        ///是否显示图例说明
        chartView.legend.enabled = true
        ///描述文字
        chartView.descriptionText = "描述文字"
        ///数值显示是否在条柱上面
        chartView.drawValueAboveBarEnabled = false
        ///是否绘制阴影背景
        chartView.drawBarShadowEnabled = false
        ///是否可以拖拽
        chartView.dragEnabled = true
        ///是否在bar上显示数值
        chartView.drawValueAboveBarEnabled = true
        chartView.doubleTapToZoomEnabled = false
        chartView.dragDecelerationEnabled = false
        

        ///x轴
        let xAxis: ChartXAxis = chartView.xAxis
        ///x轴坐标文本在charts底部靠外,bottomInside:底部靠内
        xAxis.labelPosition = .bottom
        ///开启抗锯齿
        xAxis.gridAntialiasEnabled = true
        ///绘制x轴的标签。默认true
        xAxis.drawLabelsEnabled = true
        ///标签文字大小。默认10
        xAxis.labelFont = .systemFont(ofSize: 10)
        ///显示x轴的轴线。默认true
        xAxis.drawAxisLineEnabled = true
        ///轴线的颜色。默认gray
        xAxis.axisLineColor = NSUIColor.gray
        ///轴线的宽度。默认0.5
        xAxis.axisLineWidth = 0.5
        ///是否绘制x轴网格线
        xAxis.drawGridLinesEnabled = true
        ///网格线的颜色
        xAxis.gridColor = NSUIColor.gray.withAlphaComponent(0.9)
        ///网格线的宽度。默认0.5(不设置)
//        xAxis.gridLineWidth = 0.5
//        xAxis.gridLineDashPhase = 0.0
//        ///网格线的虚线效果,间距值(不设置)
//        xAxis.gridLineDashLengths = [0]
        
        ///x轴标签文字换行。默认false
        xAxis.wordWrapEnabled = true
        xAxis.xLabelsCount = xAxisCount
        //左Y轴
        let leftAxis: ChartYAxis = chartView.leftAxis
        ///是否显示左Y轴
        leftAxis.enabled = true
        ///左Y轴最小值
        leftAxis.axisMinValue = 0
        ///设置左Y轴的最大值(不设置)
//        leftAxis.axisMaxValue = 100
        ///是否将左Y轴进行上下翻转
        leftAxis.inverted = false
        ///左Y轴线宽
        leftAxis.axisLineWidth = 0.5
        ///是否只显示最大值和最小值
        leftAxis.showOnlyMinMaxEnabled = false
        ///force设置为true,tLabelCount才可以指定Y轴的数量(不设置)
        leftAxis.setLabelCount(values.count, force: false)
        ///左Y轴最大值到顶部的范围比
        leftAxis.spaceTop = 0
        ///左Y轴轴最小宽度
        leftAxis.minWidth = leftAxisMaxWidth
        ///左Y轴轴最大宽度
        leftAxis.maxWidth = leftAxisMaxWidth
        
        
        //右Y轴
        let rightAxis: ChartYAxis = chartView.rightAxis
        ///是否显示右Y轴
        rightAxis.enabled = false
        ///右Y轴最小值
        rightAxis.axisMinValue = values[0]
        
        
        let barChartData = BarChartData(xVals: xValues, dataSet: dataSet)
        chartView.data = barChartData
        //显示柱状图顶部文字。默认true
        barChartData.setDrawValues(true)
        barChartData.setValueFont(.systemFont(ofSize: 10))
        barChartData.setValueTextColor(.brown)
        
        
        self.view.addSubview(chartView)
        chartView.snp.makeConstraints { make in
            make.leading.top.trailing.equalTo(self.view)
            make.height.equalTo(300)
        }
        // Sample data
        
        
        
        ///x轴显示数量 (需要在设置完 barChartView.data 后设置 setVisibleXRangeMaximum)
        chartView.setVisibleXRangeMaximum(CGFloat(xAxisCount))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值