1. 程式人生 > >[Swift通天遁地]三、手勢與圖表-(9)製作五彩繽紛的氣泡圖表

[Swift通天遁地]三、手勢與圖表-(9)製作五彩繽紛的氣泡圖表

本文將演示如何製作五彩繽紛的氣泡圖表。

首先確保在專案中已經安裝了所需的第三方庫。

點選【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 //建立一個包含6個數字的陣列,作為氣泡圖表的資料來源 14 let values2: [Double] = [76, 25, 20, 13, 52, 57] 15 //建立一個包含6個數字的陣列,作為氣泡圖表的資料來源
16 let values3: [Double] = [55, 75, 28, 23, 45, 91] 17 //建立一個包含6個數字的陣列,作為氣泡的尺寸 18 let sizes: [CGFloat] = [1, 2, 3, 4, 5, 6] 19 20 //依次建立三個圖表資料記錄 21 var entries1: [ChartDataEntry] = Array() 22 var entries2: [ChartDataEntry] = Array() 23 var entries3: [ChartDataEntry] = Array() 24 25 //通過一個迴圈 26 for (i, value) in values1.enumerated() 27 { 28 //將第一個陣列中的數字,新增到圖表資料記錄中。 29 //並依次設定兩軸標題和氣泡大小 30 entries1.append(BubbleChartDataEntry(x: Double(i), y: value, size: sizes[i])) 31 } 32 33 //通過一個迴圈 34 for (i, value) in values2.enumerated() 35 { 36 //將第二個陣列中的數字,新增到圖表資料記錄中。 37 //並依次設定兩軸標題和氣泡大小 38 entries2.append(BubbleChartDataEntry(x: Double(i), y: value, size: sizes[i])) 39 } 40 41 //通過一個迴圈 42 for (i, value) in values3.enumerated() 43 { 44 //將三個陣列中的數字,新增到圖表資料記錄中。 45 //並依次設定兩軸標題和氣泡大小 46 let de = BubbleChartDataEntry(x: Double(i), y: value, size: sizes[5-i]) 47 entries3.append(de) 48 } 49 50 //建立第一個資料集,並設定資料集的值域和標籤文字 51 let dataSet = BubbleChartDataSet(values: entries1, label: "Company A") 52 //同時設定該資料集對應的填充顏色 53 dataSet.setColor(NSUIColor(red: 229/255, green: 140/255, blue: 154/255, alpha: 1)) 54 55 //建立第二個資料集,並設定資料集的值域和標籤文字 56 let dataSet2 = BubbleChartDataSet(values: entries2, label: "Company B") 57 //同時設定該資料集對應的填充顏色 58 dataSet2.setColor(NSUIColor(red: 243/255, green: 209/255, blue: 142/255, alpha: 1)) 59 60 //建立第三個資料集,並設定資料集的值域和標籤文字 61 let dataSet3 = BubbleChartDataSet(values: entries3, label: "Company C") 62 //同時設定該資料集對應的填充顏色 63 dataSet3.setColor(NSUIColor(red: 172/255, green: 234/255, blue: 254/255, alpha: 1)) 64 65 //建立一個指定顯示區域的氣泡圖表檢視 66 let chart = BubbleChartView(frame: CGRect(x: 0, y: 10, width: 560, height: 280)) 67 //設定圖表檢視的背景顏色為無色 68 chart.backgroundColor = NSUIColor.clear 69 //設定氣泡圖表所顯示的資料內容 70 chart.data = BubbleChartData(dataSets: [dataSet,dataSet2,dataSet3]) 71 //設定圖表中的數值的最大可視數量為200 72 chart.maxVisibleCount = 200 73 //設定水平座標軸的標籤位置 74 //共有:頂部、底部、雙側、頂部內側、底部內側五種。 75 chart.xAxis.labelPosition = .bottom 76 //設定圖表的描述資訊 77 chart.chartDescription?.text = "strengthen" 78 //設定圖例的文字顏色為紅色 79 chart.legend.textColor = NSUIColor.red 80 //設定圖例的文字的字型大小為16 81 chart.legend.formSize = 16 82 //設定圖例在圖表中的位置處於右上角 83 chart.legend.position = .aboveChartRight 84 85 //將配置好的圖表新增到根檢視中。 86 self.view.addSubview(chart) 87 } 88 89 override func didReceiveMemoryWarning() { 90 super.didReceiveMemoryWarning() 91 // Dispose of any resources that can be recreated. 92 } 93 }