swift app中展示折线图, 饼状图, 柱状图等数据图表

github 下载Charts-master SDK,该SDK有多种可自定义的图表样式

lineChart

swift app中展示折线图, 饼状图, 柱状图等数据图表_第1张图片
正弦余弦线图


swift app中展示折线图, 饼状图, 柱状图等数据图表_第2张图片

LineChart (cubic lines)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第3张图片

LineChart (gradient fill)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第4张图片

Combined-Chart (bar- and linechart in this case)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第5张图片

BarChart (with legend, simple design)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第6张图片

BarChart (grouped DataSets)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第7张图片

Horizontal-BarChart

swift app中展示折线图, 饼状图, 柱状图等数据图表_第8张图片

PieChart (with selection, ...)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第9张图片

ScatterChart (with squares, triangles, circles, ... and more)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第10张图片

CandleStickChart (for financial data)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第11张图片

BubbleChart (area covered by bubbles indicates the value)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第12张图片

RadarChart (spider web chart)

swift app中展示折线图, 饼状图, 柱状图等数据图表_第13张图片

由于本人app中只使用了折线图和柱状图, 就针对这两个作为例子, 下面开始步骤:

 首先在下载的文件Charts-master中找到"Charts"文件夹

swift app中展示折线图, 饼状图, 柱状图等数据图表_第14张图片

拖入自己的项目

swift app中展示折线图, 饼状图, 柱状图等数据图表_第15张图片

然后将Charts文件中的Charts.xcodeproj文件拖入项目

swift app中展示折线图, 饼状图, 柱状图等数据图表_第16张图片

选择项目TARGETS的General下的Embedded Binaries区块点击+加入Charts框架, 点击Add


swift app中展示折线图, 饼状图, 柱状图等数据图表_第17张图片

object-C移步 https://github.com/danielgindi/Charts#usage

打开 ViewController.swift 导入 Charts

import UIKit

import Charts

在storyBoard中拖入一个view并关联到ViewController.swift中, 可指定view的类型

@IBOutlet weak var lineChartView: LineChartView!     //折线图

@IBOutlet weak var barChartView: BarChartView!       //柱状图

@IBOutlet weak var barChartView: CandleStickChartView!   //蜡烛状图

@IBOutlet weak var barChartView: RadarChartView!     //雷达图

还有很多样式, 根据文章上方图片名称自己查找需要的类型.

运行后会得到一个"No chart data available"信息的界面

swift app中展示折线图, 饼状图, 柱状图等数据图表_第18张图片

也可以在viewDidLoad()方法中更改这个提示信息

barChartView.noDataText = "没有可展示的数据"

加入属性用来存储数据

var days = [String]()

在viewDidLoad()中初始化一些数据, values只能为Double类型的确是比较遗憾

swift app中展示折线图, 饼状图, 柱状图等数据图表_第19张图片

setChart(days, value: sleepTime)是设定图表的函数,放一些图表的自定义设置

swift app中展示折线图, 饼状图, 柱状图等数据图表_第20张图片

运行结果

swift app中展示折线图, 饼状图, 柱状图等数据图表_第21张图片

柱状图没有仔细研究, 具体的属性自定义设置应该和折线图一样. 线面是折线图的一些属性自定义

X轴数据和Y轴数据

let lineChartData    = LineChartData(xVals: dataPoints, dataSet: lineChartDataSet) 

let lineChartDataSet = LineChartDataSet(yVals: dataEntries, label: "运动量")

设置折线图的数据为lineChartData

lineChartView.data = lineChartData

折线图上圆点的内环和外环设置

lineChartDataSet.drawCirclesEnabled = true //画外环

lineChartDataSet.drawCircleHoleEnabled = true //不画内环

lineChartDataSet.circleRadius = 2      //外环直径像素

lineChartDataSet.circleHoleRadius = 1   //内环直径

lineChartDataSet.setCircleColor(UIColor.redColor())  //环的颜色设置

lineChartDataSet.valueTextColor = .redColor()     //环上字体颜色

lineChartDataSet.drawValuesEnabled = true       //展示环上的值

X轴Y轴的一些设置

lineChartView.xAxis.labelTextColor = .greenColor()      //X轴字体颜色

lineChartView.leftAxis.labelTextColor = .greenColor()  //Y轴字体颜色

lineChartView.leftAxis.drawGridLinesEnabled = false    //多个横轴

lineChartView.rightAxis.drawGridLinesEnabled = false    //多个横轴(left, right同时false才能不展示横轴)

lineChartView.rightAxis.drawAxisLineEnabled = false //不展示右侧Y轴

lineChartView.xAxis.drawGridLinesEnabled = false  //多个纵轴

lineChartView.xAxis.axisLineColor = .blackColor()  //横轴颜色

lineChartView.leftAxis.axisLineColor = .blackColor()    //纵轴颜色

lineChartView.xAxis.labelPosition = .Bottom      //只显示底部的X轴

lineChartView.rightAxis.enabled = false     //不展示右侧Y轴数据

lineChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0)   //动画效果, 慢慢增长

barChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .EaseInBounce)   //弹弹弹, 弹走鱼尾纹(好像有什么东西乱入了- -!)弹弹弹的增长

lineChartView的其他设置

lineChartView.legend.enabled = false    //下方的"运动量"单位是否显示

运行:

swift app中展示折线图, 饼状图, 柱状图等数据图表_第22张图片

以上设置已经满足我个人的自定义需求, 如果以后再有什么改动会再来添加新的属性.

你可能感兴趣的:(swift app中展示折线图, 饼状图, 柱状图等数据图表)