2016-12-01 2 views
1

danielgindi의 iOS 차트 라이브러리를 사용하여 레이더 차트를 그려보고 싶습니다. 그러나 옵션, 특히 축 관련 옵션을 사용하는 방법을 알 수 없습니다.iOS 레이더 차트의 축 옵션을 설정하는 방법은 무엇입니까?

그것은 일반적으로 작동합니까,하지만 난 [100.0, 100.0, 100.0, 100.0, 100.0]으로 변수 목록 (array)를 설정할 때, 너무 이런 차트를 확대 보여줍니다 :

대신

, 내가 [90.0, 80.0, 90.0, 70.0, 20.0]array을 설정하면,

이 OU에서 판단 : 그리드 라인의 간격은 내 코드에도 불구하고하지 20 tputs, 문제의 원인은 축의 옵션 인 것 같습니다. 그러나, 나는이 문제를 직접 해결할 수 없었다.
차트의 크기와 축의 범위를 수정하고 원하는대로 그리드 선을 그리는 방법은 무엇입니까?

저는 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) 
}