zoukankan      html  css  js  c++  java
  • [Swift通天遁地]三、手势与图表-(5)创建带有标题、图例、坐标轴的柱形图表

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10210784.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    目录:[Swift]通天遁地Swift

    本文将演示如何如何创建一个漂亮的柱形图表。

    首先确保在项目中已经安装了所需的第三方库。

    点击【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, 104, 81, 93, 52, 44 ]
    13         //创建一个包含6个数字的数组,作为第二组柱形的数据
    14         let values2: [Double] = [76, 25, 20, 13, 52, 57]
    15         //创建一个包含6个数字的数组,作为第三组柱形的数据
    16         let values3: [Double] = [101, 75, 28, 23, 45, 91]
    17         //柱形图将用来显示三组数据的趋势
    18 
    19         //依次创建三个图表数据记录
    20         var entries1: [ChartDataEntry] = Array()
    21         var entries2: [ChartDataEntry] = Array()
    22         var entries3: [ChartDataEntry] = Array()
    23         
    24         //通过一个循环
    25         for (i, value) in values1.enumerated()
    26         {
    27             //将第一个数组中的数字,添加到图表数据记录中。
    28             entries1.append(BarChartDataEntry(x: Double(i), y: value))
    29         }
    30         
    31         //通过一个循环
    32         for (i, value) in values2.enumerated()
    33         {
    34             //将第二个数组中的数字,添加到图表数据记录中。
    35             entries2.append(BarChartDataEntry(x: Double(i), y: value))
    36         }
    37         
    38         //通过一个循环
    39         for (i, value) in values3.enumerated()
    40         {
    41             //将第二个数组中的数字,添加到图表数据记录中。
    42             entries3.append(BarChartDataEntry(x: Double(i), y: value))
    43         }
    44         
    45         //创建第一个数据集,并设置数据集的值域和标签文字
    46         let dataSet = BarChartDataSet(values: entries1, label: "Company A")
    47         //同时设置该数据集对应柱形的填充颜色
    48         dataSet.setColor(NSUIColor(red: 229/255, green: 140/255, blue: 154/255, alpha: 1))
    49         
    50         //创建第二个数据集,并设置数据集的值域和标签文字
    51         let dataSet2 = BarChartDataSet(values: entries2, label: "Company B")
    52         //同时设置该数据集对应柱形的填充颜色
    53         dataSet2.setColor(NSUIColor(red: 243/255, green: 209/255, blue: 142/255, alpha: 1))
    54         
    55         //创建第三个数据集,并设置数据集的值域和标签文字
    56         let dataSet3 = BarChartDataSet(values: entries3, label: "Company C")
    57         //同时设置该数据集对应柱形的填充颜色
    58         dataSet3.setColor(NSUIColor(red: 172/255, green: 234/255, blue: 254/255, alpha: 1))
    59         
    60         //初始化一个柱形图表数据对象,设置对象的数据集属性。
    61         let data = BarChartData(dataSets: [dataSet, dataSet2, dataSet3])
    62         //设置柱形的宽度为0.25
    63         data.barWidth = 0.25
    64         
    65         //创建一个指定显示区域的柱形图表视图
    66         let chart = BarChartView(frame: CGRect(x: 0, y: 40,  560, height: 240))
    67         //设置图表视图的背景颜色为无色
    68         chart.backgroundColor = NSUIColor.clear
    69         //设置左侧的坐标轴的最小值是0
    70         chart.leftAxis.axisMinimum = 0.0
    71         //设置右侧的坐标轴的最小值是0
    72         chart.rightAxis.axisMinimum = 0.0
    73         //将图表数据对象,设置为柱形图表视图的数据属性
    74         chart.data = data
    75         //强制将图表的子元素进行组合,并忽略它们在屏幕上的位置。
    76         chart.shouldGroupAccessibilityChildren = true
    77         //设置图表在水平方向上可被拖动的距离
    78         chart.setDragOffsetX(100)
    79         //设置图表允许被缩放
    80         chart.setScaleEnabled(true)
    81         //在水平轴的两次,各添加柱形一半的宽度,
    82         //使所有的柱形都可以被全部显示。
    83         chart.fitBars = true
    84         //将数据集组合起来
    85         chart.groupBars(fromX: -1,//起点位置
    86                         groupSpace: 0.2, //组间距
    87                         barSpace: 0.05)//柱形的间距
    88         
    89         //将配置好的图表,添加到根视图中。
    90         self.view.addSubview(chart)
    91     }
    92 
    93     override func didReceiveMemoryWarning() {
    94         super.didReceiveMemoryWarning()
    95         // Dispose of any resources that can be recreated.
    96     }
    97 }
  • 相关阅读:
    使用vue来开发一个下拉菜单组件(2)
    使用vue来开发一个下拉菜单组件(1)
    在Vue中引入Bootstrap,Font-awesome
    九宫格表格样式
    web upload 上传多张图片实例
    input 的multiple 上传多个文件
    常用 验证码 JS 代码
    最全 H5 form 表单 + 正则验证
    mysql的指令
    Ant编译MapReduce程序
  • 原文地址:https://www.cnblogs.com/strengthen/p/10210784.html
Copyright © 2011-2022 走看看