2016-12-17 71 views
9

ja integrującej wykres kołowy w mojej aplikacji przy użyciu Charts bibliotekę i coraz problem z danymi na wykresie mój kod jestwykres kołowy pomocą wykresów biblioteki z szybkim 3

import UIKit 
import Charts 
class ViewController: UIViewController { 
@IBOutlet weak var pieChartView: PieChartView! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"] 
     let unitsSold = [10.0, 4.0, 6.0, 3.0, 12.0, 16.0] 
     setChart(dataPoints: months, values: unitsSold) 

    } 


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

var dataEntries: [ChartDataEntry] = [] 

for i in 0..<dataPoints.count { 
    let dataEntry1 = ChartDataEntry(x: Double(i), y: values[i], data: dataPoints[i] as AnyObject) 

    dataEntries.append(dataEntry1) 
} 
print(dataEntries[0].data) 
let pieChartDataSet = PieChartDataSet(values: dataEntries, label: "Units Sold") 
let pieChartData = PieChartData(dataSet: pieChartDataSet) 
pieChartView.data = pieChartData 

var colors: [UIColor] = [] 

for _ in 0..<dataPoints.count { 
    let red = Double(arc4random_uniform(256)) 
    let green = Double(arc4random_uniform(256)) 
    let blue = Double(arc4random_uniform(256)) 

    let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) 
    colors.append(color) 
} 

pieChartDataSet.colors = colors 
} 
} 

i podczas uruchamiania aplikacji otrzymuję coś to
enter image description here

ale muszę wykres kołowy w pełnych zapisów danych, jak w poniższym zrzucie ekranu enter image description here

+0

oba są takie same? i tak, jeśli chcesz wydrukować nazwę miesiąca z wartością na wykresie, to po prostu dodaj ją do wartości oznacza, że ​​dodajesz wartość tekstową, gdy przechodzi do tworzenia wykresu –

+0

Mam już czas inicjalizacji wartości tekstu w tym wierszu: let dataEntry1 = ChartDataEntry (x: Podwójne (i), y: wartości [i], dane: punkty danych [i] jako AnyObject) –

+0

Używanie kodu z aplikacji: https://www.appcoda.com/ios-charts-api-tutorial/ –

Odpowiedz

5

Powodem wszystkich informacji nie oznacza SH powodem jest to, że podczas tworzenia punktu wejścia używasz rodzica inicjującego.

Zamiast

let dataEntry1 = ChartDataEntry(x: Double(i), y: values[i], data: dataPoints[i] as AnyObject) 

spróbować zamiast

let dataEntry1 = PieChartDataEntry(value: Double(i), label: dataPoints[i], data: dataPoints[i] as AnyObject) 

PieChartDataEntry jest specjalnie dla wykresów kołowych więc powinien pojawić się miesiąc Show w górę na wykresie.

Mam nadzieję, że ten dostaje się na właściwej drodze

18

Aktualizacja dla tego pytania.

func updateChartData() { 

    let chart = PieChartView(frame: self.view.frame) 
    // 2. generate chart data entries 
    let track = ["Income", "Expense", "Wallet", "Bank"] 
    let money = [650, 456.13, 78.67, 856.52] 

    var entries = [PieChartDataEntry]() 
    for (index, value) in money.enumerated() { 
     let entry = PieChartDataEntry() 
     entry.y = value 
     entry.label = track[index] 
     entries.append(entry) 
    } 

    // 3. chart setup 
    let set = PieChartDataSet(values: entries, label: "Pie Chart") 
    // this is custom extension method. Download the code for more details. 
    var colors: [UIColor] = [] 

    for _ in 0..<money.count { 
     let red = Double(arc4random_uniform(256)) 
     let green = Double(arc4random_uniform(256)) 
     let blue = Double(arc4random_uniform(256)) 
     let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1) 
     colors.append(color) 
    } 
    set.colors = colors 
    let data = PieChartData(dataSet: set) 
    chart.data = data 
    chart.noDataText = "No data available" 
    // user interaction 
    chart.isUserInteractionEnabled = true 

    let d = Description() 
    d.text = "iOSCharts.io" 
    chart.chartDescription = d 
    chart.centerText = "Pie Chart" 
    chart.holeRadiusPercent = 0.2 
    chart.transparentCircleColor = UIColor.clear 
    self.view.addSubview(chart) 

} 
+0

Czy jest jakiś sposób, aby pokazać procentowy znak z cyframi? –

+1

Jak mogę przypisać tablicę JSON do piechart? – Saurabh