2016-12-01 65 views
1

我想通過danielgindi繪製iOS Charts庫的雷達圖表,但我無法弄清楚如何使用選項,特別是關於軸的選項。如何設置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) 
} 

回答

0

我剛剛設置了數據後選項。 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) 
}