{"id":13606133,"url":"https://github.com/KoalaPlot/koalaplot-core","last_synced_at":"2025-04-12T08:30:25.091Z","repository":{"id":49826432,"uuid":"518287159","full_name":"KoalaPlot/koalaplot-core","owner":"KoalaPlot","description":"Koala Plot is a Compose Multiplatform based charting and plotting library written in Kotlin","archived":false,"fork":false,"pushed_at":"2024-10-24T04:03:34.000Z","size":5215,"stargazers_count":392,"open_issues_count":18,"forks_count":18,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T21:16:40.292Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://koalaplot.github.io/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KoalaPlot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-27T02:50:54.000Z","updated_at":"2024-10-24T03:58:53.000Z","dependencies_parsed_at":"2023-01-31T06:00:28.610Z","dependency_job_id":"12c7bda6-d000-4497-9def-9d5ccb982178","html_url":"https://github.com/KoalaPlot/koalaplot-core","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KoalaPlot%2Fkoalaplot-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KoalaPlot%2Fkoalaplot-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KoalaPlot%2Fkoalaplot-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KoalaPlot%2Fkoalaplot-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KoalaPlot","download_url":"https://codeload.github.com/KoalaPlot/koalaplot-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248539743,"owners_count":21121226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T19:01:06.374Z","updated_at":"2025-04-12T08:30:25.071Z","avatar_url":"https://github.com/KoalaPlot.png","language":"Kotlin","readme":"[![Maven Central](https://img.shields.io/maven-central/v/io.github.koalaplot/koalaplot-core?color=278ec7)](https://central.sonatype.com/artifact/io.github.koalaplot/koalaplot-core)\n[![Kotlin](https://img.shields.io/badge/kotlin-2.1.0-278ec7.svg?logo=kotlin)](http://kotlinlang.org)\n[![Dokka docs](https://img.shields.io/badge/docs-dokka-278ec7)](https://koalaplot.github.io/koalaplot-core/api/0.8.0/)\n[![License MIT](https://img.shields.io/badge/license-MIT-278ec7.svg)](https://github.com/KoalaPlot/koalaplot-core/tree/main/LICENSE.txt)\n\n# Koala Plot\n\nKoala Plot is a [Compose Multiplatform](https://www.jetbrains.com/lp/compose-mpp/) based charting and plotting library\nallowing you to build great looking interactive charts for\n[Android](https://developer.android.com/jetpack/compose), desktop, ios, and web using a single API and code base.\n\nTry out\nthe [web version of the samples](https://koalaplot.github.io/koalaplot-samples/wasmJs/productionExecutable/index.html)\nfor a quick look at the possibilities when using Koala Plot. Note that this uses\nthe [alpha Kotlin wasm Compose web-canvas](https://kotlinlang.org/docs/wasm-overview.html) capability, and you'll\nneed a browser supporting the [wasm garbage collection feature](https://github.com/WebAssembly/gc). For more information\nsee [https://kotl.in/wasm_help](https://kotl.in/wasm_help).\n\nThis project is in a pre-release experimental/alpha state. We encourage you to give it a try, make suggestions for\nimprovement, and even [contribute](https://github.com/KoalaPlot/koalaplot-core/blob/main/CONTRIBUTING.md)! It is\nexpected that the API surface and functionality will change as we gain experience using the library in applications.\n\n# Current Features\n\nMost elements of a plot are Composables and can therefore be easily customized. This includes things like colors, fonts,\nborders, shapes, user interaction, etc. Web support is provided by the Compose-web Canvas support currently in alpha.\n\n* Pie and donut chart\n    * Composable slices, with default implementation that can react to hovering\n    * Optional Composable labels and Composable connectors with provided linear and bezier implementations\n    * Composable content for donut chart centers\n    * Customizable first-draw animation\n* Line graphs\n    * Linear or Log y-axis\n    * Numeric or category x-axis\n    * Composable axis titles and value labels\n    * Optional Composable symbols for data points\n    * Optional Composable symbols at each data point with default implementations\n    * Zoom and pan one or both axes (except for mobile platforms within js and wasmJs)\n    * Optional shaded areas (area chart)\n* Stacked area graphs\n    * Plots multiple lines with shaded areas between them and accumulated values\n    * Similar feature set as the Line chart\n* Vertical bar graph\n    * Linear or Log y-axis\n    * Numeric or category x-axis\n    * Composable vertical bars with a provided default implementation\n    * Support for clustered and stacked bars\n    * Support for negative values and bars that don't start at 0\n    * Customizable first-draw animation\n    * Zoom and pan one or both axes (except for mobile platforms within js and wasmJs)\n* Bullet Graph\n    * Individual or multiple vertically aligned bullet graphs\n* Radar/Polar/Spider plots\n    * Lines, areas, symbols, or a combination\n    * Configurable origin position and angle orientation (clockwise/counter-clockwise)\n* Chart layout\n    * Combines an optional Composable title, plot, and legend with any of 4 positions\n* Legends\n    * Single column\n    * Flow-layout\n\n# Getting Started\n\n1. Add the mavenCentral and compose repositories to your project's build.gradle.kts\n\n```kotlin\nrepositories {\n    mavenCentral()\n    maven(\"https://maven.pkg.jetbrains.space/public/p/compose/dev\")\n}\n```\n\n2. Include Koala Plot core as a dependency in your project's build.gradle.kts\n\n```kotlin\ndependencies {\n    implementation(\"io.github.koalaplot:koalaplot-core:0.8.0\")\n}\n```\n\nYou can also see a complete example of a build.gradle.kts in\nthe [samples](https://github.com/KoalaPlot/koalaplot-samples).\n\n3. Start coding\n\n```kotlin\nBulletGraphs {\n    bullet(FloatLinearAxisModel(0f..300f)) {\n        label {\n            Column(\n                horizontalAlignment = Alignment.End,\n                modifier = Modifier.padding(end = KoalaPlotTheme.sizes.gap)\n            ) {\n                Text(\"Revenue 2005 YTD\", textAlign = TextAlign.End)\n                Text(\"(US $ in thousands)\", textAlign = TextAlign.End, style = MaterialTheme.typography.labelSmall)\n            }\n        }\n        axis { labels { Text(\"${it.toInt()}\") } }\n        comparativeMeasure(260f)\n        featuredMeasureBar(275f)\n        ranges(0f, 200f, 250f, 300f)\n    }\n}\n```\n\n# Documentation\n\n- [Latest build](https://koalaplot.github.io/koalaplot-core/api/0.8.0)\n- [Release 0.8.0](https://koalaplot.github.io/koalaplot-core/api/0.8.0)\n\nAlso see the [sample repository](https://github.com/KoalaPlot/koalaplot-samples) for code examples.\n\n# Contributing\n\nContributions are welcome. Further details can be found in the\n[Contributing Guidelines](https://github.com/KoalaPlot/koalaplot-core/blob/main/CONTRIBUTING.md)\n\n# Examples\n\n\u003cimg src=\"images/pie.png\" style=\"width:10cm;height:auto;\" alt=\"\"\u003e\n\u003cimg src=\"images/Polar.png\" style=\"width:10cm;height:auto;\" alt=\"\"\u003e\n\u003cimg src=\"images/Polar6.png\" style=\"width:10cm;height:auto;\" alt=\"\"\u003e\n\u003cimg src=\"images/Scatter2.png\" style=\"width:12cm;height:auto;\" alt=\"\"\u003e\n\u003cimg src=\"images/StackedArea.png\" style=\"width:12cm;height:auto;\" alt=\"\"\u003e\n\u003cimg src=\"images/StackedBar.png\" style=\"width:12cm;height:auto;\" alt=\"\"\u003e\n\u003cimg src=\"images/BulletGraph2.png\" style=\"width:12cm;height:auto;\" alt=\"\"\u003e\n","funding_links":[],"categories":["Libraries","Kotlin"],"sub_categories":["🍎 Compose UI"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKoalaPlot%2Fkoalaplot-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKoalaPlot%2Fkoalaplot-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKoalaPlot%2Fkoalaplot-core/lists"}