
import UIKit
import Charts
class ViewController: UIViewController {
//雷达图
var chartView: RadarChartView!
//雷达图每个维度的标签文字
let activities = ["力量", "敏捷", "生命", "智力", "魔法", "幸运"]
override func viewDidLoad() {
super.viewDidLoad()
//创建折线图组件对象
chartView = RadarChartView()
chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
height: 260)
self.view.addSubview(chartView)
//维度标签文字
chartView.xAxis.valueFormatter = self
//最小、最大刻度值
let yAxis = chartView.yAxis
yAxis.axisMinimum = 0
yAxis.axisMaximum = 100
yAxis.labelCount = 4
yAxis.drawLabelsEnabled = false //不显示刻度值
//生成6条随机数据
let dataEntries = (0..<6).map { (i) -> RadarChartDataEntry in
return RadarChartDataEntry(value: Double(arc4random_uniform(50) + 50))
}
let chartDataSet = RadarChartDataSet(values: dataEntries, label: "李大宝")
//目前雷达图只包括1组数据
let chartData = RadarChartData(dataSets: [chartDataSet])
//设置雷达图数据
chartView.data = chartData
}
}
extension ViewController: IAxisValueFormatter {
//维度标签文字(x轴文字)
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return activities[Int(value) % activities.count]
}
}

import UIKit
import Charts
class ViewController: UIViewController {
//雷达图
var chartView: RadarChartView!
//雷达图每个维度的标签文字
let activities = ["力量", "敏捷", "生命", "智力", "魔法", "幸运"]
override func viewDidLoad() {
super.viewDidLoad()
//创建折线图组件对象
chartView = RadarChartView()
chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
height: 260)
self.view.addSubview(chartView)
//维度标签文字
chartView.xAxis.valueFormatter = self
//最小、最大刻度值
let yAxis = chartView.yAxis
yAxis.axisMinimum = 0
yAxis.axisMaximum = 100
yAxis.labelCount = 4
yAxis.drawLabelsEnabled = false //不显示刻度值
//随机数据生成方法
let block: (Int) -> RadarChartDataEntry = { _ in
return RadarChartDataEntry(value: Double(arc4random_uniform(50) + 50))
}
//生成两组数据
let dataEntries1 = (0..<6).map(block)
let chartDataSet1 = RadarChartDataSet(values: dataEntries1, label: "李大宝")
chartDataSet1.setColor(ChartColorTemplates.joyful()[4])
let dataEntries2 = (0..<6).map(block)
let chartDataSet2 = RadarChartDataSet(values: dataEntries2, label: "王小强")
chartDataSet1.setColor(ChartColorTemplates.joyful()[1])
//目前雷达图包括2组数据
let chartData = RadarChartData(dataSets: [chartDataSet1, chartDataSet2])
chartData.setDrawValues(false) //不显示值标签
//设置雷达图数据
chartView.data = chartData
}
}
extension ViewController: IAxisValueFormatter {
//维度标签文字(x轴文字)
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return activities[Int(value) % activities.count]
}
}





import UIKit
import Charts
class ViewController: UIViewController {
//雷达图
var chartView: RadarChartView!
//雷达图每个维度的标签文字
let activities = ["力量", "敏捷", "生命", "智力", "魔法", "幸运"]
override func viewDidLoad() {
super.viewDidLoad()
//设置页面背景色
self.view.backgroundColor = UIColor(red: 0x3C/255, green: 0x41/255,
blue: 0x52/255, alpha: 1)
//创建折线图组件对象
chartView = RadarChartView()
chartView.frame = CGRect(x: 20, y: 80, width: self.view.bounds.width - 40,
height: 260)
self.view.addSubview(chartView)
//修改网格样式
chartView.webLineWidth = 1
chartView.innerWebLineWidth = 1
chartView.webColor = .lightGray
chartView.innerWebColor = .lightGray
chartView.webAlpha = 1
//维度标签文字
let xAxis = chartView.xAxis
xAxis.valueFormatter = self
xAxis.labelTextColor = .white
//最小、最大刻度值
let yAxis = chartView.yAxis
yAxis.axisMinimum = 0
yAxis.axisMaximum = 100
yAxis.labelCount = 4
yAxis.drawLabelsEnabled = false //不显示刻度值
yAxis.labelTextColor = .white
//图例样式
let l = chartView.legend
l.textColor = .white
//生成6条随机数据
let dataEntries = (0..<6).map { (i) -> RadarChartDataEntry in
return RadarChartDataEntry(value: Double(arc4random_uniform(50) + 50))
}
let chartDataSet = RadarChartDataSet(values: dataEntries, label: "李大宝")
chartDataSet.setColor(UIColor(red: 121/255, green: 162/255,
blue: 175/255, alpha: 1))
chartDataSet.fillColor = UIColor(red: 121/255, green: 162/255,
blue: 175/255, alpha: 1)
chartDataSet.drawFilledEnabled = true
chartDataSet.fillAlpha = 0.7
chartDataSet.lineWidth = 2
chartDataSet.drawHighlightCircleEnabled = true //选中后显示圆圈
chartDataSet.setDrawHighlightIndicators(false) //选中后不显示十字线
//目前雷达图只包括1组数据
let chartData = RadarChartData(dataSets: [chartDataSet])
chartData.setValueFont(.systemFont(ofSize: 8, weight: .light))
chartData.setValueTextColor(.white)
//设置雷达图数据
chartView.data = chartData
}
}
extension ViewController: IAxisValueFormatter {
//维度标签文字(x轴文字)
func stringForValue(_ value: Double, axis: AxisBase?) -> String {
return activities[Int(value) % activities.count]
}
}