Swift 很强大的图表库-Charts使用

前言: 今天分享一个很漂亮的功能强大的图表库,希望对有需要的同学, 有帮助, 喜欢请点个赞,支持一下.谢谢~

在项目中如何加入Swift库请看我的上一篇文章

http://www.jianshu.com/p/fd91c10c9f55

编译环境: Xcode7.3

添加Charts图表库
// 在Podfile中
use_frameworks!
pod ‘Charts‘
import Charts

创建柱状图

func createLineChartView()
    {
        chartView = BarChartView.init(frame: CGRectMake(0, 64, screenWidth, screenHeight - 64))
        chartView.barData
        // 签协议
        chartView.delegate = self
        chartView.backgroundColor = UIColor.whiteColor()
        self.view.addSubview(chartView)
    }

模拟数据赋值

func setChart(dataPoints: [String], values: [Double]) {
        var dataEntries: [BarChartDataEntry] = []
        for i in 0..<dataPoints.count {
            let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
            dataEntries.append(dataEntry)
        }
        let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Units Sold")
        let chartData = BarChartData(xVals: months, dataSet: chartDataSet)
        // 加上一个界限, 演示图中红色的线
        let jx = ChartLimitLine(limit: 12.0, label: "I am LimitLine")
        chartView.rightAxis.addLimitLine(jx)
        chartView.data = chartData
        // 自定义颜色
        // 例子中有十二个柱状图
        // colors 是一个数组, 可以给相应的颜色
        chartDataSet.colors = [UIColor.blueColor(), UIColor.redColor(), UIColor.cyanColor()]
        // API 自带颜色模板
        // ChartColorTemplates.liberty()
        // ChartColorTemplates.joyful()
        // ChartColorTemplates.pastel()
        // ChartColorTemplates.colorful()
        // ChartColorTemplates.vordiplom()
        chartDataSet.colors = ChartColorTemplates.liberty()
        /**
         // 动画效果, 简单列举几个, 具体请看API
         case EaseInBack
         case EaseOutBack
         case EaseInOutBack
         case EaseInBounce
         case EaseOutBounce
         case EaseInOutBounce
          */
        // 加上动画
        chartView.animate(yAxisDuration: 1.0, easingOption: .EaseInBounce)
    }

还可以保存当前的图表状态, 写一个保存按钮

    func createRightBarButtonItem()
    {
        let buttonRight = UIButton.init(type: UIButtonType.Custom)
        buttonRight.frame = CGRectMake(0, 0, 40, 40)
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: buttonRight)
        buttonRight.setTitle("Save", forState: UIControlState.Normal)
        buttonRight.addTarget(self, action:#selector(ViewController.save(_:)), forControlEvents: UIControlEvents.TouchUpInside)
    }

点击方法中加入以下代码

func save(btn: UIButton)
    {
        // 保存到相册
        chartView.saveToCameraRoll()
        print("保存成功")
    }

你可能还想实现点击单个立柱实现不同的点击事件

你可以 实现ChartViewDelegate

class ViewController: UIViewController, ChartViewDelegate {
// 在创建的时候签协议
// chartView.delegate = self
// 实现协议方法
func chartValueSelected(chartView: ChartViewBase, entry: ChartDataEntry, dataSetIndex: Int,     highlight: ChartHighlight) {
        print("\(entry.value) in \(months[entry.xIndex])")
    }

这样创建折线图

chartView = LineChartView.init(frame: CGRectMake(0, 64, screenWidth, screenHeight - 64))

模拟数据赋值改成如下代码

var dataEntries: [ChartDataEntry] = []
        for i in 0..<dataPoints.count {
            let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
            dataEntries.append(dataEntry)
        }
        let chartDataSet = LineChartDataSet(yVals: dataEntries, label: "Units Sold")
        let chartData = LineChartData(xVals: months, dataSet: chartDataSet)

总结: 图标支持缩放点击,这里我只给出了两种样式的图标代码示例, 详情请看官方API和Demo请点击

考虑到文章可能思路混乱有些地方不清楚我会放上github地址,方便大家学习下载查看请点击

时间: 2024-10-15 14:12:33

Swift 很强大的图表库-Charts使用的相关文章

11个很棒的 jQuery 图表库

如果你曾经使用过任何类型的数据,你应该知道阅读一排排数据的痛苦.通过所有这些数据弄清楚他们的意思是非常不容易的.可视化对于解决这个问题起到了重要的作用.可视化降低了数据阅读的难度,帮助决策者获得可操作的见解. “Dataviz”是数据可视化的缩写,其主要目标是: 通过统计图形.图表.信息图像.表格以及选定表格来清晰的.有效的与用户交流信息.—Wikipedia 作为开发人员,我们必须确保我们使用正确的工具来从数据中创建有意义的图表,当我们看图的时候能够获得适当的细节信息. 有很多的 jQuery

双11不再孤单,结识ECharts---强大的常用图表库

又是一年双十一,广大单身狗们有没有很寂寞(好把,其实我也是)!但是这次的双十一,我不再孤单,因为结识了一个js的强大的图表库---ECharts. 最近做软件工程项目的时候,由于设计图中有柱状图和饼图的设计,第一反应用原生js写肯定很麻烦,于是我请求能否不做,但我们的PM铁了心要做,最终逼迫我找到了这个强大的图表库,哈哈,在这里感谢一下PM李佳玮.(当我发现它还兼容IE6-8时,真的炒鸡感动!)  ECharts提供商业产品常用图表,底层基于ZRender(一个全新的轻量级canvas类库),创

开源一个Android自定义图表库

类库接入 使用示例 1.南丁格尔玫瑰图 NightingaleRoseChart 2.占比饼状图表 PieChartLayout 3.进度环形图 ProgressPieChart 4.纵向柱状图 BarVerticalChart 5.横向柱状图 BarHorizontalChart 源码下载 ??项目中有一些图表需求,一开始尝试使用一些开源的图表库,这些图表库功能很强大,图表种类应有尽有,是不错的选择.但是这些类库使用起来通常需要大量的设置,对于项目风格不能很好的贴合.于是自己尝试写了一个图表库

推荐三款强大的Js图表库

1.百度的Echart ECharts,缩写来自Enterprise Charts,是百度推出的一款开源的,商业级数据图表,它最初是为了满足百度公司商业体系里各种业务系统(如凤巢.广告管家等等)的报表需求. 2.Highcharts 中文网站:http://www.hcharts.cn/ Highcharts是国外的一款功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯js图表库.Highcharts针对个人用户及非商业用途免费,商业用途需要购买授权. 3.阿里的G2 G2(The Gram

强大的金融类图表库 TradingView 使用分享

这段时间刚好做币圈交易所,运用到了现在最火的金融类图表库 -- TradingView ,就是强大,基本上现在的火币网(https://www.huobi.com),币安网(https://www.binance.com/)等大型交易所都在使用. 简介: 带有开放API的可下载图表库.这是一个独立的解决方案,可以将其下载,托管在自己的服务器上,连接自己的数据,在自己的网站/应用程序免费使用. 适用于手机和桌面应用程序. 门户网站.博客和新闻网站. 当您想要完全控制图表并希望显示您所控制的数据时,

ECharts(Enterprise Charts 商业产品图表库)初识

一.简介 大数据时代,重新定义图表的时候到了,所以随之ECharts就随之出现了. ECharts(Enterprise Charts 商业产品图表库) 是基于Canvas的,纯Javascript 的图表库,提供直观,生动,可交互,可个性化定制的 数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘.整合的能力.      ECharts 是指 Enterprise Charts(商业产品图表库),提供商业产品常用图表库,底层基于 ZRende

【转】 值得推荐的C/C++框架和库 (真的很强大)

[转] 值得推荐的C/C++框架和库 (真的很强大) 值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力.Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行. 下载链接:http://home.tiscali.cz/~cz210552/webbench.html - 2. T

值得推荐的C/C++框架和库 (真的很强大) c

http://m.blog.csdn.net/mfcing/article/details/49001887 值得推荐的C/C++框架和库 (真的很强大) 发表于2015/10/9 21:13:14  14199人阅读 分类: 开源 本篇文章主要介绍了"值得推荐的C/C++框架和库 (真的很强大)",主要涉及到方面的内容,对于C/C++教程感兴趣的同学可以参考一下: 得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使

【很强大的Android图表引擎 - AChartSDK】

在手机移动App开发中,图表在app中越来越占领举足轻重的地图.而在Android领域.AchartEngine 图表引擎可谓无人不知无人不晓. 可是今天就给各位推荐更为强大的图表引擎. 为什么说更为强大呢?由于该引擎也是基于AchartEngine.可是新增了许多使用并且更加友好的工功能. 还是先上图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2ppYTU1/font/5a6L5L2T/fontsize/400/fill/I0JBQk