在RadarChartData上设置标签

时间:2019-03-10 01:07:15

标签: swift ios-charts

我正在使用danielgindi的iOS和macOS的Charts v3.2.2框架绘制RadarChartView。有一个github repository提供了一个示例Xcode项目,其中包括Playgrounds。一个用于RadarChartView

在此示例之后,我可以为RadarChartData设置两个不同的RadarChartDataSet

var chartView = RadarChartView(frame: rect)
let data = RadarChartData(dataSets: [set1, set2])
chartView.data = data

它显示如下图:

enter image description here

设置为x轴的绿色标签是从0.0到4.0的数字,但是它们应该是字符串标签。

我无法弄清楚如何设置应该在每行Web末尾的RadarChart周围绘制的标签。我想应该是这样的:

data.setLabels("London", "Paris", "Berlin", "New York", "Tokio")

但这是无效的,尽管它是RadarChartData类的功能来设置所需的标签。

有人可以帮我解决这个问题吗?

编辑:完整的代码示例

import Cocoa
import Charts
import PlaygroundSupport

let r = CGRect(x: 0, y: 0, width: 400, height: 400)
var chartView = RadarChartView(frame: r)
// General settings
chartView.webColor = NSUIColor.lightGray
chartView.innerWebColor = NSUIColor.lightGray
chartView.webAlpha = 1.0
// xAxis settings
let xAxis = chartView.xAxis
xAxis.xOffset = 0.0
xAxis.yOffset = 0.0
xAxis.labelTextColor = NSUIColor.green
xAxis.drawLabelsEnabled = true

// yAxis settings
let yAxis = chartView.yAxis
yAxis.labelCount = 5
yAxis.axisMinimum = 0.0
yAxis.axisMaximum = 80.0
yAxis.drawLabelsEnabled = true
// Legend settings
let legend = chartView.legend
// ... (irrelevant)

// Description
chartView.chartDescription?.enabled = true
chartView.chartDescription?.text = "Radar demo"
chartView.chartDescription?.textColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)

// RadarChartDataEntry
let mult = 80.0
let min = 20.0
let cnt = 5

var entries1 = [RadarChartDataEntry]()
var entries2 = [RadarChartDataEntry]()

for i in 1...cnt
{
  let values1 = (Double(arc4random_uniform(UInt32(mult))) + min)
  entries1.append(RadarChartDataEntry(value: values1, data: "a" as AnyObject))
  let values2 = (Double(arc4random_uniform(UInt32(mult))) + min)
  entries2.append(RadarChartDataEntry(value: values2, data: "b" as AnyObject))
}

// RadarChartDataSet
let set1 = RadarChartDataSet(entries: entries1, label: "Last Week")
set1.drawFilledEnabled = true
set1.fillAlpha = 0.7
set1.lineWidth = 2.0
set1.drawHighlightCircleEnabled = true
set1.setDrawHighlightIndicators(false)

let set2 = RadarChartDataSet(entries: entries2, label: "This Week")
set2.drawFilledEnabled = true
set2.fillAlpha = 0.7
set2.lineWidth = 2.0
set2.drawHighlightCircleEnabled = true
set2.setDrawHighlightIndicators(false)

// RadarChartData
let data = RadarChartData(dataSets: [set1, set2])
data.setLabels("London", "Paris", "Berlin", "New York", "Tokio")
data.setDrawValues ( true )
data.setValueTextColor(  NSUIColor.white )
chartView.data = data
chartView.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInBounce)

// show chartView
PlaygroundPage.current.liveView = chartView

0 个答案:

没有答案