0
votes

Comment puis-je créer un graphique à barres? Rapide

dans mon application, j'utilise CoreData pour enregistrer et résumer des nombres entiers. Maintenant, je veux présenter ces nombres entiers dans un graphique à barres simple mais beau. Il doit afficher le nombre le plus élevé par jour où il a été enregistré dans l'entité.

Quelqu'un a-t-il un exemple simple de code que je peux utiliser? Merci d'avance


0 commentaires

3 Réponses :


1
votes

Ce que j'utilise principalement, ce sont les graphiques ( https://github.com/danielgindi/Charts ). Il est gratuit pour une utilisation sous licence Apache-2.0 et offre une grande personnalisation. Vous pouvez afficher leur code source pour quelque chose de plus spécifique et il y a également d'excellents exemples de projets.


0 commentaires

1
votes

Comme @KristijanK l'a dit, Charts est l'un des frameworks populaires que vous pouvez lier et utiliser. Si vous ne savez pas par où commencer, suivez les démos fournies dans le référentiel sous forme d'échafaudage et partez de là. Observez comment un graphique est instancié et l'ensemble de données est alimenté.

Par exemple, si vous souhaitez utiliser un graphique à secteurs pour afficher la proportion du nombre le plus élevé par jour parmi les entités, import Charts abord import Charts , instanciez le graphique @IBOutlet var chartView: PieChartView! , et entrez vos données let set = PieChartDataSet(entries: entries, label: "Entry Count") .

Une chose notable à prêter attention sont les formateurs . Vous souhaiterez probablement personnaliser les unités de l'axe des x ou de l'axe des y en fonction du type de graphiques et de graphiques que vous utilisez en fonction du type de votre ensemble de données. Par exemple, un graphique affichant des données par 1000 km sera différent des données par litre. Utilisez les classes de formateur pour créer une méthode personnalisée pour convertir l'unité en ce que vous voulez.


0 commentaires

0
votes

Vous pouvez utiliser ce fichier pour un dessin simple sans avoir besoin d'importer une bibliothèque supplémentaire telle que des graphiques. Essayez de jouer avec le code ci-dessous, vous apprendrez de nouvelles choses. Bon codage.

extension CGFloat {
    func radians() -> CGFloat {
        let b = CGFloat(M_PI) * (self/180)
        return b
    }
}

extension UIBezierPath {
    convenience init(circleSegmentCenter center:CGPoint, radius:CGFloat, startAngle:CGFloat, endAngle:CGFloat)
    {
        self.init()
        self.moveToPoint(CGPointMake(center.x, center.y))
        self.addArcWithCenter(center, radius:radius, startAngle:startAngle.radians(), endAngle: endAngle.radians(), clockwise:true)
        self.closePath()
    }
}



func pieChart(pieces:[(UIBezierPath, UIColor)], viewRect:CGRect) -> UIView {
    var layers = [CAShapeLayer]()
    for p in pieces {
        let layer = CAShapeLayer()
        layer.path = p.0.CGPath
        layer.fillColor = p.1.CGColor
        layer.strokeColor = UIColor.whiteColor().CGColor
        layers.append(layer)
    }
    let view = UIView(frame: viewRect)
    for l in layers {
        
        view.layer.addSublayer(l)
        
        
    }
    return view
}

let rectSize = CGRectMake(0,0,400,400)
let centrePointOfChart = CGPointMake(CGRectGetMidX(rectSize),CGRectGetMidY(rectSize))
let radius:CGFloat = 100
let piePieces = [(UIBezierPath(circleSegmentCenter: centrePointOfChart, radius: radius, startAngle: 250, endAngle: 360),UIColor.brownColor()), (UIBezierPath(circleSegmentCenter: centrePointOfChart, radius: radius, startAngle: 0, endAngle: 200),UIColor.orangeColor()), (UIBezierPath(circleSegmentCenter: centrePointOfChart, radius: radius, startAngle: 200, endAngle: 250),UIColor.lightGrayColor())]
pieChart(piePieces, viewRect: CGRectMake(0,0,400,400))


0 commentaires