[Swift通天遁地]三、手势与图表-(10)创建包含圆点、方形、三角形图标的散点图表
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10211300.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 values1: [Double] = [8, 61, 81, 93, 52, 44 ] 13 let values2: [Double] = [76, 25, 20, 13, 52, 57] 14 let values3: [Double] = [55, 75, 28, 23, 45, 91] 15 16 //依次创建三个图表数据记录 17 var entries1: [ChartDataEntry] = Array() 18 var entries2: [ChartDataEntry] = Array() 19 var entries3: [ChartDataEntry] = Array() 20 21 //通过一个循环 22 for (i, value) in values1.enumerated() 23 { 24 //将第一个数组中的数字,添加到图表数据记录中。 25 //并依次设置两轴的数据 26 entries1.append(ChartDataEntry(x: Double(i), y: value)) 27 } 28 29 //通过一个循环 30 for (i, value) in values2.enumerated() 31 { 32 //将第一个数组中的数字,添加到图表数据记录中。 33 //并依次设置两轴的数据 34 entries2.append(ChartDataEntry(x: Double(i), y: value)) 35 } 36 37 //通过一个循环 38 for (i, value) in values3.enumerated() 39 { 40 //将第一个数组中的数字,添加到图表数据记录中。 41 //并依次设置两轴的数据 42 let de = ChartDataEntry(x: Double(i), y: value) 43 entries3.append(de) 44 } 45 46 //创建第一个数据集,并设置数据集的值域和标签文字 47 let dataSet = ScatterChartDataSet(values: entries1, label: "Company A") 48 //设置第一组的散点图的图标为三角形 49 dataSet.setScatterShape(.triangle) 50 //设置散点图表的尺寸为20 51 dataSet.scatterShapeSize = 20 52 //设置散点图表的填充颜色 53 dataSet.setColor(NSUIColor(red: 229/255, green: 140/255, blue: 154/255, alpha: 1)) 54 55 //创建第二个数据集,并设置数据集的值域和标签文字 56 let dataSet2 = ScatterChartDataSet(values: entries2, label: "Company B") 57 //设置第二组的散点图的图标为方形 58 dataSet2.setScatterShape(.square) 59 //设置散点图表的填充颜色 60 dataSet2.setColor(NSUIColor(red: 243/255, green: 209/255, blue: 142/255, alpha: 1)) 61 62 //创建第三个数据集,并设置数据集的值域和标签文字 63 let dataSet3 = ScatterChartDataSet(values: entries3, label: "Company C") 64 //设置第二组的散点图的图标为圆形 65 dataSet3.setScatterShape(.circle) 66 //设置散点图表的填充颜色 67 dataSet3.setColor(NSUIColor(red: 172/255, green: 234/255, blue: 254/255, alpha: 1)) 68 69 //创建一个指定显示区域的散点图表视图 70 let chart = ScatterChartView(frame: CGRect(x: 0, y: 10, width: 560, height: 280)) 71 //设置图表视图的背景颜色为无色 72 chart.backgroundColor = NSUIColor.clear 73 //设置散点图表所显示的数据内容 74 chart.data = ScatterChartData(dataSets: [dataSet,dataSet2,dataSet3]) 75 //设置图表中的数值的最大可视数量为200 76 chart.maxVisibleCount = 200 77 //设置水平坐标轴的标签位置 78 //共有:顶部、底部、双侧、顶部内侧、底部内侧五种。 79 chart.xAxis.labelPosition = .bottom 80 //设置图表的描述信息 81 chart.chartDescription?.text = "strengthen" 82 83 //将配置好的图表添加到根视图中 84 self.view.addSubview(chart) 85 } 86 87 override func didReceiveMemoryWarning() { 88 super.didReceiveMemoryWarning() 89 // Dispose of any resources that can be recreated. 90 } 91 }