swift app中展示折線圖, 餅狀圖, 柱狀圖等數(shù)據(jù)圖表

github 下載Charts-master SDK,該SDK有多種可自定義的圖表樣式

lineChart

正弦余弦線圖


LineChart (cubic lines)

LineChart (gradient fill)

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

BarChart (with legend, simple design)

BarChart (grouped DataSets)

Horizontal-BarChart

PieChart (with selection, ...)

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

CandleStickChart (for financial data)

BubbleChart (area covered by bubbles indicates the value)

RadarChart (spider web chart)

由于本人app中只使用了折線圖和柱狀圖, 就針對這兩個作為例子, 下面開始步驟:

?首先在下載的文件Charts-master中找到"Charts"文件夾

拖入自己的項目

然后將Charts文件中的Charts.xcodeproj文件拖入項目

選擇項目TARGETS的General下的Embedded Binaries區(qū)塊點擊+加入Charts框架, 點擊Add


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

打開 ViewController.swift 導(dǎo)入 Charts

import UIKit

import Charts

在storyBoard中拖入一個view并關(guān)聯(lián)到ViewController.swift中, 可指定view的類型

@IBOutlet weak var lineChartView: LineChartView! ? ? //折線圖

@IBOutlet weak var barChartView: BarChartView! ? ? ? //柱狀圖

@IBOutlet weak var barChartView: CandleStickChartView! ? //蠟燭狀圖

@IBOutlet weak var barChartView: RadarChartView! ? ? //雷達圖

還有很多樣式, 根據(jù)文章上方圖片名稱自己查找需要的類型.

運行后會得到一個"No chart data available"信息的界面

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

barChartView.noDataText = "沒有可展示的數(shù)據(jù)"

加入屬性用來存儲數(shù)據(jù)

var days = [String]()

在viewDidLoad()中初始化一些數(shù)據(jù), values只能為Double類型的確是比較遺憾

setChart(days, value: sleepTime)是設(shè)定圖表的函數(shù),放一些圖表的自定義設(shè)置

運行結(jié)果

柱狀圖沒有仔細研究, 具體的屬性自定義設(shè)置應(yīng)該和折線圖一樣. 線面是折線圖的一些屬性自定義

X軸數(shù)據(jù)和Y軸數(shù)據(jù)

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

let lineChartDataSet = LineChartDataSet(yVals: dataEntries, label: "運動量")

設(shè)置折線圖的數(shù)據(jù)為lineChartData

lineChartView.data = lineChartData

折線圖上圓點的內(nèi)環(huán)和外環(huán)設(shè)置

lineChartDataSet.drawCirclesEnabled = true //畫外環(huán)

lineChartDataSet.drawCircleHoleEnabled = true //不畫內(nèi)環(huán)

lineChartDataSet.circleRadius = 2 ? ? ?//外環(huán)直徑像素

lineChartDataSet.circleHoleRadius = 1 ? //內(nèi)環(huán)直徑

lineChartDataSet.setCircleColor(UIColor.redColor()) ?//環(huán)的顏色設(shè)置

lineChartDataSet.valueTextColor = .redColor() ? ? //環(huán)上字體顏色

lineChartDataSet.drawValuesEnabled = true ? ? ? //展示環(huán)上的值

X軸Y軸的一些設(shè)置

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 //不展示右側(cè)Y軸

lineChartView.xAxis.drawGridLinesEnabled = false? //多個縱軸

lineChartView.xAxis.axisLineColor = .blackColor()? //橫軸顏色

lineChartView.leftAxis.axisLineColor = .blackColor()? ? //縱軸顏色

lineChartView.xAxis.labelPosition = .Bottom? ? ? //只顯示底部的X軸

lineChartView.rightAxis.enabled = false ? ? //不展示右側(cè)Y軸數(shù)據(jù)

lineChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0) ? //動畫效果, 慢慢增長

barChartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .EaseInBounce) ? //彈彈彈, 彈走魚尾紋(好像有什么東西亂入了- -!)彈彈彈的增長

lineChartView的其他設(shè)置

lineChartView.legend.enabled = false? ? //下方的"運動量"單位是否顯示

運行:

以上設(shè)置已經(jīng)滿足我個人的自定義需求, 如果以后再有什么改動會再來添加新的屬性.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容