Swift - 第三方图表库AAInfographics使用详解3(多彩渐变色)
作者:hangge | 2019-02-09 08:10
一、内置的渐变色
1,使用样例
(1)AAInfographics 图表内置了一套渐变色(AAGradientColor)供我们直接使用,下面是柱状图使用渐变色的效果:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 初始化图表视图控件
let chartWidth = self.view.frame.size.width
let chartHeight = self.view.frame.size.height - 200
let aaChartView = AAChartView()
aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight)
self.view.addSubview(aaChartView)
// 初始化图表模型
let chartModel = AAChartModel()
.chartType(.column)//图表类型
.title("城市天气变化")//图表主标题
.subtitle("2020年09月18日")//图表副标题
.inverted(false)//是否翻转图形
.yAxisTitle("摄氏度")// Y 轴标题
.legendEnabled(true)//是否启用图表的图例(图表底部的可点击的小圆点)
.tooltipValueSuffix("摄氏度")//浮动提示框单位后缀
.categories(["一月", "二月", "三月", "四月", "五月", "六月"])
.colorsTheme([AAGradientColor.oceanBlue,
AAGradientColor.sanguine,
AAGradientColor.lusciousLime])//渐变颜色数组
.series([
AASeriesElement()
.name("东京")
.data([7.0, 6.9, 9.5, 14.5, 18.2, 21.5])
.toDic()!,
AASeriesElement()
.name("纽约")
.data([0.2, 0.8, 5.7, 11.3, 17.0, 25.0])
.toDic()!,
AASeriesElement()
.name("柏林")
.data([0.9, 0.6, 3.5, 8.4, 13.5, 17.0])
.toDic()!])
// 图表视图对象调用图表模型对象,绘制最终图形
aaChartView.aa_drawChartWithChartModel(chartModel)
}
}
(2)下面是折线图使用渐变色的效果:

2,所有的渐变颜色
下面使用条形图将所有内置渐变色都展示出来。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let gradientColorNamesArr = [
"oceanBlue",
"sanguine",
"lusciousLime",
"purpleLake",
"freshPapaya",
"ultramarine",
"pinkSugar",
"lemonDrizzle",
"victoriaPurple",
"springGreens",
"mysticMauve",
"reflexSilver",
"newLeaf",
"cottonCandy",
"pixieDust",
"fizzyPeach",
"sweetDream",
"firebrick",
"wroughtIron",
"deepSea",
"coastalBreeze",
"eveningDelight",
]
// 所有内置渐变色
let gradientColorArr = [
AAGradientColor.oceanBlue,
AAGradientColor.sanguine,
AAGradientColor.lusciousLime,
AAGradientColor.purpleLake,
AAGradientColor.freshPapaya,
AAGradientColor.ultramarine,
AAGradientColor.pinkSugar,
AAGradientColor.lemonDrizzle,
AAGradientColor.victoriaPurple,
AAGradientColor.springGreens,
AAGradientColor.mysticMauve,
AAGradientColor.reflexSilver,
AAGradientColor.newLeaf,
AAGradientColor.cottonCandy,
AAGradientColor.pixieDust,
AAGradientColor.fizzyPeach,
AAGradientColor.sweetDream,
AAGradientColor.firebrick,
AAGradientColor.wroughtIron,
AAGradientColor.deepSea,
AAGradientColor.coastalBreeze,
AAGradientColor.eveningDelight,
]
// 初始化图表视图控件
let chartWidth = self.view.frame.size.width
let chartHeight = self.view.frame.size.height
let aaChartView = AAChartView()
aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight)
self.view.addSubview(aaChartView)
// 初始化图表模型
let chartModel = AAChartModel()
.chartType(.bar)//图表类型
.title("城市天气变化")//图表主标题
.inverted(false)//是否翻转图形
.legendEnabled(true)//是否启用图表的图例(图表底部的可点击的小圆点)
.tooltipValueSuffix("摄氏度")//浮动提示框单位后缀
.categories(gradientColorNamesArr)
.colorsTheme(gradientColorArr as [Any])//渐变颜色数组
.series([
AASeriesElement()
.name("2018")
.data(Array(0..<gradientColorArr.count).map{ _ in 75 })
.colorByPoint(true)
.toDic()!])
// 图表视图对象调用图表模型对象,绘制最终图形
aaChartView.aa_drawChartWithChartModel(chartModel)
}
}
二、使用自定义的渐变颜色
(1)如果嫌内置的渐变色不能满足我们的需求,我们也可以自定义渐变色。

(2)样例代码
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 初始化图表视图控件
let chartWidth = self.view.frame.size.width
let chartHeight = self.view.frame.size.height - 200
let aaChartView = AAChartView()
aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight)
self.view.addSubview(aaChartView)
// 初始化图表模型
let chartModel = AAChartModel()
.chartType(.column)//图表类型
.title("城市天气变化")//图表主标题
.inverted(false)//是否翻转图形
.legendEnabled(true)//是否启用图表的图例(图表底部的可点击的小圆点)
.tooltipValueSuffix("摄氏度")//浮动提示框单位后缀
.categories(["渐变1", "渐变3", "渐变2"])
.colorsTheme([
GradientColorDicMaker
.configureGradientColorDictionary(startColor: "000000",
endColor: "FFFFFF"),
GradientColorDicMaker
.configureGradientColorDictionary(startColor: "FF00FF",
endColor: "FFFFFF"),
GradientColorDicMaker
.configureGradientColorDictionary(startColor: "FF0000",
endColor: "FFFF00")
])//渐变颜色数组
.series([
AASeriesElement()
.name("2018")
.data(Array(0..<3).map{ _ in 75 })
.colorByPoint(true)
.toDic()!])
// 图表视图对象调用图表模型对象,绘制最终图形
aaChartView.aa_drawChartWithChartModel(chartModel)
}
}
全部评论(0)