Swift - 第三方图表库Charts使用详解12(折线图11:获取、保存图片,极简样式)

十一、获取、保存图表图片
1,获取图片
(1)效果图
点击“获取图片”按钮后,将当前图表生成一张图片(image),并显示在下方。
原文:Swift - 第三方图表库Charts使用详解12(折线图11:获取、保存图片,极简样式)    原文:Swift - 第三方图表库Charts使用详解12(折线图11:获取、保存图片,极简样式)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)样例代码

import UIKit
import Charts

class ViewController: UIViewController {

//折线图
var chartView: LineChartView!
 
@IBOutlet weak var imageView: UIImageView!
 
override func viewDidLoad() {
    super.viewDidLoad()
     
    //创建折线图组件对象
    chartView = LineChartView()
    chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                             height: 250)
    self.view.addSubview(chartView)
     
    //生成20条随机数据
    var dataEntries = [ChartDataEntry]()
    for i in 0..<20 {
        let y = arc4random()%100
        let entry = ChartDataEntry.init(x: Double(i), y: Double(y))
        dataEntries.append(entry)
    }
    //这50条数据作为1根折线里的所有数据
    let chartDataSet = LineChartDataSet(values: dataEntries, label: "图例1")
    //目前折线图只包括1根折线
    let chartData = LineChartData(dataSets: [chartDataSet])
     
    //设置折现图数据
    chartView.data = chartData
}
 
@IBAction func buttonTapped(_ sender: Any) {
    //获取图片
    let image = chartView.getChartImage(transparent: true)
    //将其显示在imageView中
    imageView.image = image
}

}

2,保存图表图片
如果需要将图表保存到系统相簿,同样是先通过 getChartImage() 方法获取 image 图片,然后使用 UIImageWriteToSavedPhotosAlbum() 方法进行保存。

//获取图片
let image = chartView.getChartImage(transparent: false)
//将其保存到系统相册中
UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil)

附:极简样式的折线图
折线图相关的配置属性都介绍了差不多了,最后提供一个官方的 demo。在有些场景下,使用这样最简单的折线图,去掉各种附加的元素、样式,效果反而十分好。
原文:Swift - 第三方图表库Charts使用详解12(折线图11:获取、保存图片,极简样式)    原文:Swift - 第三方图表库Charts使用详解12(折线图11:获取、保存图片,极简样式)
在这里插入图片描述

import Charts

class ViewController: UIViewController {

//折线图
var chartView: LineChartView!
 
override func viewDidLoad() {
    super.viewDidLoad()
     
    //创建折线图组件对象
    chartView = LineChartView()
    chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
                             height: 150)
    chartView.legend.enabled = false
    chartView.leftAxis.enabled = false
    chartView.leftAxis.spaceTop = 0.4
    chartView.leftAxis.spaceBottom = 0.4
    chartView.rightAxis.enabled = false
    chartView.xAxis.enabled = false
    self.view.addSubview(chartView)
     
    //折线图背景色
    chartView.backgroundColor = UIColor(red: 89/255, green: 199/255, blue: 250/255,
                                        alpha: 1)
     
    //生成8条随机数据
    var dataEntries = [ChartDataEntry]()
    for i in 0..<8 {
        let y = arc4random()%100
        let entry = ChartDataEntry.init(x: Double(i), y: Double(y))
        dataEntries.append(entry)
    }
    //这50条数据作为1根折线里的所有数据
    let chartDataSet = LineChartDataSet(values: dataEntries, label: "李子明")
    chartDataSet.lineWidth = 1.75
    chartDataSet.circleRadius = 5.0
    chartDataSet.circleHoleRadius = 2.5
    chartDataSet.setColor(.white)
    chartDataSet.setCircleColor(.white)
    chartDataSet.highlightColor = .white
    chartDataSet.drawValuesEnabled = false
    //目前折线图只包括1根折线
    let chartData = LineChartData(dataSets: [chartDataSet])
     
    //设置折现图数据
    chartView.data = chartData
}

}

原文出自:www.hangge.com 原文链接:https://www.hangge.com/blog/cache/detail_2136.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值