All Projects → gtcompscientist → KelloCharts

gtcompscientist / KelloCharts

Licence: Apache-2.0 license
Kotlin Charts/graphs library for Android compatible with API 21+, several chart types with support for scaling, scrolling and animations

Programming Languages

kotlin
9241 projects
HTML
75241 projects

Projects that are alternatives of or similar to KelloCharts

Svelte Frappe Charts
📈 Svelte bindings for frappe-charts.
Stars: ✭ 111 (+122%)
Mutual labels:  charting-library
Funnel Graph Js
SVG Funnel Graph Javascript Library
Stars: ✭ 164 (+228%)
Mutual labels:  charting-library
Plotly.js
Open-source JavaScript charting library behind Plotly and Dash
Stars: ✭ 14,268 (+28436%)
Mutual labels:  charting-library
Chartkick Ex
Create beautiful Javascript charts with minimal code
Stars: ✭ 114 (+128%)
Mutual labels:  charting-library
Asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Stars: ✭ 1,805 (+3510%)
Mutual labels:  charting-library
Graphic
A Flutter data visualization library based on Grammar of Graphics.
Stars: ✭ 173 (+246%)
Mutual labels:  charting-library
Devextreme
HTML5 JavaScript Component Suite for Responsive Web Development
Stars: ✭ 1,385 (+2670%)
Mutual labels:  charting-library
Hanami
Interactive arts and charts plotting with Clojure(Script) and Vega-lite / Vega. Flower viewing 花見 (hanami)
Stars: ✭ 216 (+332%)
Mutual labels:  charting-library
Timeline Plus
Timeline - chronological visualization of your data
Stars: ✭ 140 (+180%)
Mutual labels:  charting-library
Chartist Js
Simple responsive charts
Stars: ✭ 12,731 (+25362%)
Mutual labels:  charting-library
Ng Chartist
Angular component for Chartist.js
Stars: ✭ 116 (+132%)
Mutual labels:  charting-library
React D3 Components
D3 Components for React
Stars: ✭ 1,599 (+3098%)
Mutual labels:  charting-library
Smoothie
Smoothie Charts: smooooooth JavaScript charts for realtime streaming data
Stars: ✭ 2,145 (+4190%)
Mutual labels:  charting-library
Django Jchart
📈 A Django package for plotting charts using the excellent Chart.JS library.
Stars: ✭ 115 (+130%)
Mutual labels:  charting-library
Angular Chartist.js
Angular directive for Chartist.js
Stars: ✭ 206 (+312%)
Mutual labels:  charting-library
Echarts
Apache ECharts is a powerful, interactive charting and data visualization library for browser
Stars: ✭ 49,119 (+98138%)
Mutual labels:  charting-library
Matplotplusplus
Matplot++: A C++ Graphics Library for Data Visualization 📊🗾
Stars: ✭ 2,433 (+4766%)
Mutual labels:  charting-library
Jkqtplotter
an extensive Qt5 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
Stars: ✭ 246 (+392%)
Mutual labels:  charting-library
Keen Dataviz.js
Data Visualization Charting Library
Stars: ✭ 215 (+330%)
Mutual labels:  charting-library
Ej2 Vue Ui Components
Syncfusion Vue UI component library offer more than 50+ cross-browser, responsive, and lightweight vue UI controls for building modern web applications.
Stars: ✭ 182 (+264%)
Mutual labels:  charting-library

KelloCharts for Android

Kotlin Charts/graphs library for Android compatible with API 21+ (Android 5.0), several chart types with support for scaling, scrolling and animations Works best when hardware acceleration is available, so API 14+(Android 4.0) is recommended. Apache License 2.0.

Build badges and gradle availability coming soon

Features

  • Line chart(cubic lines, filled lines, scattered points)
  • Column chart(grouped, stacked, negative values)
  • Pie chart
  • Bubble chart
  • Combo chart(columns/lines)
  • Preview charts(for column chart and line chart)
  • Zoom(pinch to zoom, double tap zoom), scroll and fling
  • Custom and auto-generated axes(top, bottom, left, right, inside)
  • Animations

Screens and Demos

  • Code of a demo application is in kellocharts-sample directory
  • Demo App coming soon

Usage

Every chart view can be defined in layout xml file:

   <co.csadev.kellocharts.view.LineChartView
       android:id="@+id/chart"
       android:layout_width="match_parent"
       android:layout_height="match_parent" />

or created in code and added to layout later:

   LineChartView chart = new LineChartView(context)
   layout.addView(chart)

Use methods from *Chart classes to define chart behaviour, example methods:

   Chart.isInteractive = isInteractive
   Chart.zoomType = zoomType
   Chart.setContainerScrollEnabled(boolean isEnabled, ContainerScrollType type)

Use methods from data models to define how chart looks like, example methods:

   ChartData.axisXBottom = axisX
   ColumnChartData.isStacked = isStacked
   Line.strokeWidth = strokeWidthDp

Every chart has its own method to set chart data and its own data model, example for line chart:

   arrayListOf(PointValue(0, 2), PointValue(1, 4), PointValue(2, 3), PointValue(3, 4))

   val line = Line(values, color = Color.BLUE, isCubic = true)
   val lines = arrayListOf(line)

   val data = LineChartData(lines)

   val chart = LineChartView(context)
   chart.lineChartData = data

Also, available as a DSL, same example as above:

lineData {
   lines {
       line {
           color = Color.BLUE
           isCubic = true
           pointValues {
               point {
                   x = 0f
                   y = 2f
               }
               point {
                   x = 1f
                   y = 4f
               }
               point {
                   x = 2f
                   y = 3f
               }
               point {
                   x = 3f
                   y = 4f
               }
           }
       }
   }
}

After the chart data has been set you can still modify its attributes but right after that you should call *.*ChartData setter again to let chart recalculate and redraw data. There is also an option to use copy constructor for deep copy of chart data. You can safely modify copy in other threads and pass it to *.*ChartData setter later.

Contributing

Yes :) If you found a bug, have an idea how to improve library or have a question, please create new issue or comment existing one. If you would like to contribute code fork the repository and send a pull request.

License

KelloCharts
Copyright 2018 Charles Anderson

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

 KelloCharts library is developed from the original HelloCharts library available:
   https://github.com/lecho/hellocharts-android

 KelloCharts library uses code from InteractiveChart sample available 
 on Android Developers page:
 
   http://developer.android.com/training/gestures/scale.html
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].