Skip to content

recruit-mtl/Graphs

Repository files navigation

#Graphs Badge w/ Version Carthage compatible MIT License

###Light weight charts view generater for iOS. Written in Swift.

Graphs mock

Requirements

  • iOS 8.0+
  • XCode 7.3+

Installation

$ pod init

specify it in your Podfile

platform :ios, '8.0'

target 'TargetName' do

  use_frameworks!
  pod 'Graphs', '~> 0.1.2'

end

And run CocoaPods

$ pod install

--

You can install Carthage with Homebrew.

$ brew update
$ brew install carthage

specify it in your Cartfile

github "recruit-mtl/Graphs"

And run carthage

$ carthage update --platform ios

Usage

#####import Graphs

import Graphs
Range -> GraphView (Bar)
let view = (1 ... 10).barGraph(GraphRange(min: 0, max: 11)).view(viewFrame)

Array -> GraphView (Line)
let view = [10, 20, 4, 8, 25, 18, 21, 24, 8, 15].lineGraph(GraphRange(min: 0, max: 30)).view(viewFrame)

Dictionary -> GraphView (Pie)
let view = ["a": 3, "b": 8, "c": 9, "d": 20].pieGraph().view(viewFrame)
GraphData protocol -> GraphView (Pie)
import Graphs

struct Data<T: Hashable, U: NumericType>: GraphData {
    typealias GraphDataKey = T
    typealias GraphDataValue = U
    
    private let _key: T
    private let _value: U
    
    init(key: T, value: U) {
        self._key = key
        self._value = value
    }
    
    var key: T { get{ return self._key } }
    var value: U { get{ return self._value } }
}

let data = [
    Data(key: "John", value: 18.9),
    Data(key: "Ken", value: 32.9),
    Data(key: "Taro", value: 15.3),
    Data(key: "Micheal", value: 22.9),
    Data(key: "Jun", value: 12.9),
    Data(key: "Hanako", value: 32.2),
    Data(key: "Kent", value: 3.8)
]

let view = data.pieGraph() { (unit, totalValue) -> String? in
    return unit.key! + "\n" + String(format: "%.0f%%", unit.value / totalValue * 100.0)
}.view(viewFrame)

More detail

-> Read Playgrounds

Demo

$ git clone https://github.com/recruit-mtl/Graphs.git
$ cd /path/to/Graphs/GraphsExample
$ pod install

And Open GraphsExample.xcworkspace

Issues

GraphView doesn't work on Interface builder.

Interface Builder talks to code through the ObjC runtime. And ObjC doesn't do generics.

Licence

MIT

Author

About

Light weight charts view generater for iOS. Written in Swift.

Resources

License

Stars

Watchers

Forks

Packages

No packages published