Swift - 第三方图表库Charts使用详解15(柱状图2:正负柱状图、横向条形图)

二、正负柱状图
1,效果图
柱状图是可以同时显示正值和负值数据的。同时这里做个功能改进,根据正负情况显示相应颜色:
正值的柱子显示为绿色。
负值的柱子显示为红色。
原文:Swift - 第三方图表库Charts使用详解15(柱状图2:正负柱状图、横向条形图)

2,样例代码
import UIKit
import Charts

class ViewController: UIViewController {

//柱状图图
var chartView: BarChartView!
 
override func viewDidLoad() {
    super.viewDidLoad()
     
    //创建折线图组件对象
    chartView = BarChartView()
    chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                             height: 260)
    self.view.addSubview(chartView)
     
    //生成10条随机数据
    var dataEntries = [BarChartDataEntry]()
    for i in 0..<10 {
        let y = Double(arc4random() % 100) - 50
        let entry = BarChartDataEntry(x: Double(i), y: y)
        dataEntries.append(entry)
    }
     
    //根据正负值生成每个立柱使用的颜色
    let red = UIColor(red: 211/255, green: 74/255, blue: 88/255, alpha: 1)
    let green = UIColor(red: 110/255, green: 190/255, blue: 102/255, alpha: 1)
    let colors = dataEntries.map { (entry) -> NSUIColor in
        return entry.y > 0 ? green : red
    }
     
    //这10条数据作为柱状图的所有数据
    let chartDataSet = BarChartDataSet(values: dataEntries, label: "图例1")
    //设置颜色
    chartDataSet.colors = colors
    //目前柱状图只包括1组立柱
    let chartData = BarChartData(dataSets: [chartDataSet])
     
    //设置柱状图数据
    chartView.data = chartData
}

}

三、横向条形图
1,只包含正值的条形图
如果要显示水平柱状图,只需要把 BarChartView 换成 HorizontalBarChartView 即可。
原文:Swift - 第三方图表库Charts使用详解15(柱状图2:正负柱状图、横向条形图)

import UIKit
import Charts

class ViewController: UIViewController {

//横向柱状图
var chartView: HorizontalBarChartView!
 
override func viewDidLoad() {
    super.viewDidLoad()
     
    //创建柱状图组件对象
    chartView = HorizontalBarChartView()
    chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                             height: 260)
    self.view.addSubview(chartView)
     
    //不显示图例
    chartView.legend.enabled = false
    //x轴显示在左侧
    chartView.xAxis.labelPosition = .bottom
    //y轴起始刻度为0
    chartView.leftAxis.axisMinimum = 0
    chartView.rightAxis.axisMinimum = 0
     
    //生成10条随机数据
    var dataEntries = [BarChartDataEntry]()
    for i in 0..<10 {
        let y = arc4random()%100
        let entry = BarChartDataEntry(x: Double(i), y: Double(y))
        dataEntries.append(entry)
    }
    //这10条数据作为柱状图的所有数据
    let chartDataSet = BarChartDataSet(values: dataEntries, label: "图例1")
    //目前柱状图只包括1组立柱
    let chartData = BarChartData(dataSets: [chartDataSet])
     
    //设置柱状图数据
    chartView.data = chartData
    chartView.fitScreen()
}

}

2,同时包含正负值的条形图
这个和最开始的样例差不多,只不过之前是纵向显示,这次变成横向显示。
原文:Swift - 第三方图表库Charts使用详解15(柱状图2:正负柱状图、横向条形图)

import UIKit
import Charts

class ViewController: UIViewController {

//横向柱状图
var chartView: HorizontalBarChartView!
 
override func viewDidLoad() {
    super.viewDidLoad()
     
    //创建柱状图组件对象
    chartView = HorizontalBarChartView()
    chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                             height: 260)
    self.view.addSubview(chartView)
     
    //不显示图例
    chartView.legend.enabled = false
    //x轴显示在左侧
    chartView.xAxis.labelPosition = .bottom
     
    //生成10条随机数据
    var dataEntries = [BarChartDataEntry]()
    for i in 0..<10 {
        let y = Double(arc4random() % 100) - 50
        let entry = BarChartDataEntry(x: Double(i), y: y)
        dataEntries.append(entry)
    }
     
    //根据正负值生成每个立柱使用的颜色
    let red = UIColor(red: 211/255, green: 74/255, blue: 88/255, alpha: 1)
    let green = UIColor(red: 110/255, green: 190/255, blue: 102/255, alpha: 1)
    let colors = dataEntries.map { (entry) -> NSUIColor in
        return entry.y > 0 ? green : red
    }
     
    //这10条数据作为柱状图的所有数据
    let chartDataSet = BarChartDataSet(values: dataEntries, label: "图例1")
    //设置颜色
    chartDataSet.colors = colors
    //目前柱状图只包括1组立柱
    let chartData = BarChartData(dataSets: [chartDataSet])
     
    //设置柱状图数据
    chartView.data = chartData
    chartView.fitScreen()
}

}

原文出自:www.hangge.com 原文链接:https://www.hangge.com/blog/cache/detail_2153.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值