【问题标题】:How to set the axis options of iOS Radar Chart?如何设置 iOS 雷达图的坐标轴选项?
【发布时间】:2016-12-01 09:08:23
【问题描述】:

我想用 danielgindi 的 iOS 图表库绘制雷达图,但我不知道如何使用选项,尤其是关于轴的选项。

它通常可以工作,但是当我将变量列表 (array) 设置为 [100.0, 100.0, 100.0, 100.0, 100.0] 时,它显示的图表过于放大,如下所示:

相反,当我将array 设置为[90.0, 80.0, 90.0, 70.0, 20.0] 时,网格线的间隔不是20,尽管我的代码:

从这些输出来看,问题的原因似乎是轴的选项。但是,我无法自己解决这个问题。
如何固定图表的大小和轴的范围,并随意绘制网格线?

我使用 Xcode 8.1 / swift 2.3 / Charts 2.3.1。

import UIKit
import Charts

class ViewController: UIViewController {

@IBOutlet weak var radarChartView: RadarChartView!

//Label
let subjects = ["English", "Math", "Physics", "Chemistry", "Biology"]
//Points
let array = [100.0, 100.0, 100.0, 100.0, 100.0]

override func viewDidLoad() {
    super.viewDidLoad()
    setChart(subjects, values: array)
    print("array:")
    print(array)
}

func setChart(dataPoints: [String], values: [Double]) {

    radarChartView.noDataText = "You need to provide data for the chart."
    var dataEntries: [ChartDataEntry] = []
    for i in 0..<dataPoints.count {
        let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
        dataEntries.append(dataEntry)
    }
    let chartDataSet = RadarChartDataSet(yVals: dataEntries, label: "Units Sold")
    let chartData = RadarChartData(xVals: subjects, dataSet: chartDataSet)
    radarChartView.data = chartData

    //Options of radarChart
    radarChartView.sizeToFit()
    radarChartView.descriptionText = ""

    //Options for the axis from here. The range is 0-100, the interval is 20
    radarChartView.yAxis.labelCount = 6
    radarChartView.yAxis.axisMinValue = 0.0
    radarChartView.yAxis.axisMaxValue = 100.0

    radarChartView.rotationEnabled = false
    chartDataSet.drawFilledEnabled = true

    //Present the number as integer
    let numberFormatter = NSNumberFormatter()
    numberFormatter.generatesDecimalNumbers = false
    chartDataSet.valueFormatter = numberFormatter
    radarChartView.yAxis.valueFormatter = numberFormatter

    //Other options
    radarChartView.legend.enabled = false
    radarChartView.yAxis.gridAntialiasEnabled = true
    radarChartView.animate(yAxisDuration: 2.0)
}

【问题讨论】:

    标签: ios swift ios-charts


    【解决方案1】:

    我只需要在选项之后设置数据。 picture

    func setChart(dataPoints: [String], values: [Double]) {
        radarChartView.noDataText = "You need to provide data for the chart."
        var dataEntries: [ChartDataEntry] = []
        for i in 0..<dataPoints.count {
            let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
            dataEntries.append(dataEntry)
        }
        let chartDataSet = RadarChartDataSet(yVals: dataEntries, label: "Units Sold")
    
        //Set options...
    
        //Then set data
        let chartData = RadarChartData(xVals: subjects, dataSet: chartDataSet)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多