Awesome
#<img src="https://s3-ap-northeast-1.amazonaws.com/graphs-mtl/graphs_logo.png" width="100%" alt="Graphs" />
###Light weight charts view generater for iOS. Written in Swift.
<img src="https://s3-ap-northeast-1.amazonaws.com/graphs-mtl/graphs_mock.png" width="850" alt="Graphs mock" />Requirements
- iOS 8.0+
- XCode 7.3+
Installation
CocoaPods
$ 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
--
Carthage
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)
<img src="https://s3-ap-northeast-1.amazonaws.com/graphs-mtl/graphs1.png" width="363" />
Array -> GraphView (Line)
let view = [10, 20, 4, 8, 25, 18, 21, 24, 8, 15].lineGraph(GraphRange(min: 0, max: 30)).view(viewFrame)
<img src="https://s3-ap-northeast-1.amazonaws.com/graphs-mtl/graphs2.png" width="349" />
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)
<img src="https://s3-ap-northeast-1.amazonaws.com/graphs-mtl/graphs3.png" width="323 " />
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.