[Swift通天遁地]三、手势与图表-(8)制作股市中常用的蜡烛图表
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10211188.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示如何制作股市中常用的蜡烛图表。
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'Charts' 7 end
根据配置文件中的相关配置,安装第三方库。
然后点击打开【DemoApp.xcworkspace】项目文件。
为了更好的显示柱形图标需要调整模拟器的朝向。
【DemoApp】->【General】
->【Device Orientation】取消勾选【Portrait】肖像选项,使模拟器保持横向显示。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //首先在当前的类文件中,引入已经安装的第三方类库 3 import Charts 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //创建一个包含6个数字的数组,作为一天中的股市高位的数据 12 let highs: [Double] = [1801.6, 1762.1, 1740.9, 1726.7, 1725.9, 1736.2] 13 //创建一个包含6个数字的数组,作为一天中的股市低位的数据 14 let lows: [Double] = [1750.0, 1718.8, 1715.0, 1695.5, 1706.7, 1722.7] 15 //创建一个包含6个数字的数组,作为一天中的股市开市时的数据 16 let opens: [Double] = [1801.4, 1750.8, 1725.8, 1722.6, 1706.7, 1727,4] 17 //创建一个包含6个数字的数组,作为一天中的股市结束时的数据 18 let closes: [Double] = [1752.6, 1724.0, 1720.6, 1704.5, 1724.5, 1725.4] 19 20 //在蜡烛图中,将使用这些数据,展示6天的股市数据。 21 22 //创建一个图表数据记录类型的数组 23 var entries1: [ChartDataEntry] = Array() 24 //通过一个6次的循环 25 for (i, value) in highs.enumerated() 26 { 27 //将四个数组中的数字,添加到图表数据记录中。 28 entries1.append(CandleChartDataEntry(x: Double(i)+1, shadowH: value, shadowL: lows[i], open: opens[i], close: closes[i])) 29 } 30 31 //创建第一个蜡烛图表数据集,并设置数据集的值域和标签文字 32 let dataSet = CandleChartDataSet(values: entries1, label: "Company A") 33 //设置数据集的填充颜色 34 dataSet.setColor(NSUIColor(red: 229/255, green: 140/255, blue: 154/255, alpha: 1)) 35 //设置蜡烛的间距为0.3 36 dataSet.barSpace = 0.3 37 //设置蜡烛的负增长颜色为绿色 38 dataSet.decreasingColor = NSUIColor.green 39 //设置蜡烛的增长颜色为红色 40 dataSet.increasingColor = NSUIColor.red 41 //设置蜡烛的中性颜色为蓝色 42 dataSet.neutralColor = NSUIColor.blue 43 //设置蜡烛的阴影颜色为黑色 44 dataSet.shadowColor = NSUIColor.black 45 //设置阴影宽度为5.0 46 dataSet.shadowWidth = 5.0 47 48 //创建一个指定显示区域 49 let rect = CGRect(x: 0, y: 10, width: 560, height: 280) 50 //利用该区域,创建一个蜡烛图表视图 51 let chart = CandleStickChartView(frame: rect) 52 //设置图表视图的背景颜色为无色 53 chart.backgroundColor = NSUIColor.clear 54 //设置图表所显示的数据内容 55 chart.data = CandleChartData(dataSets: [dataSet]) 56 //设置图表中的数值的最大可视数量为200 57 chart.maxVisibleCount = 200 58 //设置水平坐标轴的标签位置 59 //共有:顶部、底部、双侧、顶部内侧、底部内侧五种。 60 chart.xAxis.labelPosition = .bottom 61 //设置图表的描述信息 62 chart.chartDescription?.text = "https://www.cnblogs.com/strengthen/" 63 64 //将配置好的图表,添加到根视图中。 65 self.view.addSubview(chart) 66 } 67 68 override func didReceiveMemoryWarning() { 69 super.didReceiveMemoryWarning() 70 // Dispose of any resources that can be recreated. 71 } 72 }