All Projects → joeynelson42 → Ilg

joeynelson42 / Ilg

Licence: mit
because the world needs another iOS chart library.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Ilg

Tplink Energy Monitor
An energy monitoring dashboard for TP-Link smart plugs
Stars: ✭ 316 (+2330.77%)
Mutual labels:  graph, chart
Chart.xkcd
Chart.xkcd is a chart library that plots “sketchy”, “cartoony” or “hand-drawn” styled charts.
Stars: ✭ 6,982 (+53607.69%)
Mutual labels:  graph, chart
Androidplot
Charts and plots for Android
Stars: ✭ 381 (+2830.77%)
Mutual labels:  graph, chart
Amcharts4
The most advanced amCharts charting library for JavaScript and TypeScript apps.
Stars: ✭ 907 (+6876.92%)
Mutual labels:  graph, chart
Multi charts
A flutter package which makes it easier to plot different types of charts with lots of customization, made purely in dart
Stars: ✭ 23 (+76.92%)
Mutual labels:  graph, chart
Sparklinelayout
Simple and lightweight library for drawing sparklines / graphs. Support markers and gradients.
Stars: ✭ 291 (+2138.46%)
Mutual labels:  graph, chart
Piecharts
Easy to use and highly customizable pie charts library for iOS
Stars: ✭ 476 (+3561.54%)
Mutual labels:  graph, chart
Charts
Simple, responsive, modern SVG Charts with zero dependencies
Stars: ✭ 14,112 (+108453.85%)
Mutual labels:  graph, chart
React D3 Tree
🌳 React component to create interactive D3 tree graphs
Stars: ✭ 543 (+4076.92%)
Mutual labels:  graph, chart
Ttyplot
a realtime plotting utility for terminal/console with data input from stdin
Stars: ✭ 532 (+3992.31%)
Mutual labels:  graph, chart
Fl chart
A powerful Flutter chart library, currently supporting Line Chart, Bar Chart, Pie Chart, Scatter Chart and Radar Chart.
Stars: ✭ 3,882 (+29761.54%)
Mutual labels:  graph, chart
Gojs
JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.
Stars: ✭ 5,739 (+44046.15%)
Mutual labels:  graph, chart
Chart.js
Simple HTML5 Charts using the <canvas> tag
Stars: ✭ 55,646 (+427946.15%)
Mutual labels:  graph, chart
Flutter Candlesticks
Elegant OHLC Candlestick and Trade Volume charts for @Flutter
Stars: ✭ 318 (+2346.15%)
Mutual labels:  graph, chart
Clchart
A fast, simple and cross-platform(html5 react-native weex wechat-applet) stock chart library created using canvas.
Stars: ✭ 250 (+1823.08%)
Mutual labels:  graph, chart
Vue D3 Network
Vue component to graph networks using d3-force
Stars: ✭ 415 (+3092.31%)
Mutual labels:  graph, chart
Squid
A Ruby library to plot charts in PDF files
Stars: ✭ 205 (+1476.92%)
Mutual labels:  graph, chart
Meter
Laravel package to find performance bottlenecks in your laravel application.
Stars: ✭ 204 (+1469.23%)
Mutual labels:  graph, chart
Billboard.js
📊 Re-usable, easy interface JavaScript chart library based on D3.js
Stars: ✭ 5,032 (+38607.69%)
Mutual labels:  graph, chart
Esp Dash
A blazing fast library to create a functional dashboard for ESP8266 and ESP32
Stars: ✭ 548 (+4115.38%)
Mutual labels:  graph, chart

ILG (InteractiveLineGraph) 📈

I was tasked with building something akin to Robinhood's graph and while there are several thousand iOS chart frameworks I decided it would be more fun to roll my own and less tedious than modifying someone else's. I tried my best to keep it simple, while still allowing for enough customization for it to remain potentially useful for others.

Disclaimer

I built this for work and while it meets my job's requirements, many areas haven't been fleshed out. I like to think that I'll get back to it but I am very good at putting things on my get-back-to-it shelf.

Things to be aware of (or fix/add if you're feeling communal):

  • Not sure where the grid is at, probably still works?
  • There was a gradient beneath the line at one point but it broke and I haven't bothered to fix it.
  • Line and dot animations leave something to be desired.

Things I do plan on working on:

  • GraphViewInteractionDelegate could be fancier/a little more helpful.
  • Naming and other general housekeeping.
  • Documentation.
  • Testing!

Requirements

  • Swift 4.2
  • iOS 10.0+

Installation

CocoaPods ☕️

You can use CocoaPods to install ILG by adding it to your Podfile:

pod 'ILG'

Usage

Don't forget to import ILG:

import ILG

Create an instance of InteractiveLineGraphView and add it to your view hierarchy however you would like:

let graphView = InteractiveLineGraphView()

Then call graphView.update(...) and you're off to the races.

Properties

There are a number of public properties you'll find in InteractiveLineGraphView.swift, most of them are self-explanatory but here are a few that may not be:

lineMinY and lineMaxY will force set the lower and upper y-axis limits, if nil then the .min() or .max() of your data will be used.

interactionDetailCard is the floating card. It's entirely optional, simply assign it any UIView and it will do the rest. If you do use it and would like to update it be sure to keep a reference to your card so you can update it in the GraphViewInteractionDelegate callback (maybe in the future I'll have fancier protocols).

Protocols

GraphViewInteractionDelegate will relay all interaction information back to you. And when I say "all" I mean it will just tell you when the highlighted index has changed. Spicing it up a little wouldn't be hard, and I would like to in the future but for now it is what it is.

Meta(l!!! 🎸🎸🎸)

Joey Nelson – @jedmondn[email protected]

Distributed under the MIT license. See LICENSE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].