{"id":14977125,"url":"https://github.com/jetbrains/lets-plot","last_synced_at":"2025-05-13T18:09:04.454Z","repository":{"id":37789795,"uuid":"176771727","full_name":"JetBrains/lets-plot","owner":"JetBrains","description":"Multiplatform plotting library based on the Grammar of Graphics","archived":false,"fork":false,"pushed_at":"2025-05-12T14:05:06.000Z","size":449072,"stargazers_count":1665,"open_issues_count":164,"forks_count":53,"subscribers_count":211,"default_branch":"master","last_synced_at":"2025-05-12T15:26:31.436Z","etag":null,"topics":["compose-multiplatform","data-visualization","datalore","geo-spatial","ggplot","ggplot2","jupyter","jupyter-notebooks","kotlin","plot","plot-library","plotting-in-kotlin","plotting-in-python","pycharm","pycharm-plugin","python","sciview"],"latest_commit_sha":null,"homepage":"https://lets-plot.org","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/JetBrains.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2019-03-20T16:13:03.000Z","updated_at":"2025-05-11T22:08:11.000Z","dependencies_parsed_at":"2023-10-13T04:24:31.500Z","dependency_job_id":"0df88521-4388-41eb-9f49-0ea880de87b0","html_url":"https://github.com/JetBrains/lets-plot","commit_stats":{"total_commits":4242,"total_committers":24,"mean_commits":176.75,"dds":0.5759075907590758,"last_synced_commit":"fd41708547d8b7f81790e6523f50d4fe057e1526"},"previous_names":[],"tags_count":109,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Flets-plot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Flets-plot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Flets-plot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JetBrains%2Flets-plot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JetBrains","download_url":"https://codeload.github.com/JetBrains/lets-plot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000850,"owners_count":21997441,"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":["compose-multiplatform","data-visualization","datalore","geo-spatial","ggplot","ggplot2","jupyter","jupyter-notebooks","kotlin","plot","plot-library","plotting-in-kotlin","plotting-in-python","pycharm","pycharm-plugin","python","sciview"],"created_at":"2024-09-24T13:55:08.926Z","updated_at":"2025-05-13T18:08:59.410Z","avatar_url":"https://github.com/JetBrains.png","language":"Kotlin","readme":"# Lets-Plot\n\n[![official JetBrains project](http://jb.gg/badges/official-flat-square.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)\n[![License MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/JetBrains/lets-plot-kotlin/master/LICENSE)\n[![Latest Release](https://img.shields.io/github/v/release/JetBrains/lets-plot)](https://github.com/JetBrains/lets-plot/releases/latest)\n\n\n**Lets-Plot** is a multiplatform plotting library built on the principles of the Grammar of Graphics. \n\nThe library' design is heavily influenced by Leland Wilkinson work [The Grammar of Graphics](https://www.goodreads.com/book/show/2549408.The_Grammar_of_Graphics) describing the deep features that underlie all statistical graphics.\n\n\u003e This grammar [...] is made up of a set of independent components that can be composed in many different ways. This makes [it] very powerful because you are not limited to a set of pre-specified graphics, but you can create new graphics that are precisely tailored for your problem.\n\u003e - Hadley Wickham, \"[ggplot2: Elegant Graphics for Data Analysis](https://ggplot2-book.org/index.html)\"\n\n\n## Grammar of Graphics for Python [![Latest Release](https://badge.fury.io/py/lets-plot.svg)](https://pypi.org/project/lets-plot)\n\nA bridge between R (ggplot2) and Python data visualization. \\\nTo learn more see the documentation site at **[lets-plot.org](https://lets-plot.org)**.          \n\n\n## Grammar of Graphics for Kotlin [![Latest Release](https://img.shields.io/github/v/release/JetBrains/lets-plot-kotlin)](https://github.com/JetBrains/lets-plot-kotlin/releases/latest)\n\n### Notebooks\nCreate plots in [Kotlin Notebook](https://plugins.jetbrains.com/plugin/16340-kotlin-notebook),\n[Datalore](https://datalore.jetbrains.com/report/static/HZqq77cegYd.E7get_WnChZ/aTA9lQnPkRwdCzT6uy95GZ), [Jupyter with Kotlin Kernel](https://github.com/Kotlin/kotlin-jupyter#readme) \\\nor any other notebook that supports `Kotlin Kernel`. \\\nTo learn more see the **[Lets-Plot Kotlin API](https://github.com/JetBrains/lets-plot-kotlin)** project at GitHub.\n\n### Compose Multiplatform\nEmbed Lets-Plot charts in [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform) applications. \\\nTo learn more see the **[Lets-Plot Skia Frontend](https://github.com/JetBrains/lets-plot-skia)** project at GitHub.\n\n### JVM and Kotlin/JS\nEmbed Lets-Plot charts in JVM (Swing, JavaFX) and Kotlin/JS applications. \u003cbr\u003e\nTo learn more see the **[Lets-Plot Kotlin API](https://github.com/JetBrains/lets-plot-kotlin)** project at GitHub.\n\n## \"Lets-Plot in SciView\" plugin\n\n[![JetBrains Plugins](https://img.shields.io/jetbrains/plugin/v/14379-lets-plot-in-sciview.svg)](http://plugins.jetbrains.com/plugin/14379-lets-plot-in-sciview)\n[![JetBrains plugins](https://img.shields.io/jetbrains/plugin/d/14379-lets-plot-in-sciview.svg)](http://plugins.jetbrains.com/plugin/14379-lets-plot-in-sciview)\n\n*Scientific mode* in PyCharm and in IntelliJ IDEA provides support for interactive scientific computing and data visualization.\n\n[*Lets-Plot in SciView*](https://plugins.jetbrains.com/plugin/14379-lets-plot-in-sciview) plugin adds \nsupport for interactive plotting to IntelliJ-based IDEs with the *Scientific mode* enabled.\n \n\u003e\n\u003e **Note:** The *Scientific mode* is NOT available in communinty editions of JetBrains IDEs. \n\u003e\n\nAlso read:\n\n- [Scientific mode in PyCharm](https://www.jetbrains.com/help/pycharm/matplotlib-support.html)\n- [Scientific mode in IntelliJ IDEA](https://www.jetbrains.com/help/idea/matplotlib-support.html)\n\n## What is new in 4.4.0\n\n- #### Waterfall Plot\n  \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24e/images/waterfall.png\" alt=\"f-24e/images/waterfall.png\" width=\"460\" height=\"220\"\u003e\n  \n  See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-24e/waterfall_plot.ipynb).\n\n- #### **`geom_band()`**:\n  \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24e/images/geom_band.png\" alt=\"f-24e/images/geom_band.png.png\" width=\"615\" height=\"220\"\u003e\n\n  See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-24e/geom_band.ipynb).\n\n- #### Custom Legends \n  - `manual_key` parameter in plot layer\n  - `layer_key()` function\n  \u003cbr\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24e/images/custom_legend.png\" alt=\"f-24e/images/custom_legend.png.png\" width=\"294\" height=\"147\"\u003e\n\n  See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-24e/manual_legend.ipynb).\n   \n- #### Customizing Legends Appearance\n  The `override_aes` parameter in the `guide_legend()` function.\n     \n  See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-24e/legend_override_aes.ipynb).\n\n\n- #### And More\n\n  See [CHANGELOG.md](https://github.com/JetBrains/lets-plot/blob/master/CHANGELOG.md) for a full list of changes.\n\n\n## Recent Updates in the [Gallery](https://lets-plot.org/python/pages/gallery.html)\n\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/demo/us_unemployment.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24e/images/us_unemployment.png\" alt=\"f-24e/images/us_unemployment.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/demo/venn_diagram.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24b/images/gal_venn_diagram.png\" alt=\"f-24b/images/gal_venn_diagram.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/cookbook/geom_spoke.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24b/images/gal_spoke.png\" alt=\"f-24b/images/gal_spoke.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.kaggle.com/code/alshan/indonesia-volcanoes-on-map\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24b/images/gal_indonesia_volcanoes_on_map.png\" alt=\"f-24b/images/gal_indonesia_volcanoes_on_map.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.kaggle.com/code/alshan/japanese-volcanoes-on-map\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24b/images/gal_japanese_volcanoes_on_map.png\" alt=\"f-24b/images/gal_japanese_volcanoes_on_map.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nextjournal.com/asmirnov-horis/bbc-visual-and-data-journalism-cookbook-for-lets-plot\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/gal_bbc_cookbook.png\" alt=\"f-24a/images/gal_bbc_cookbook.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/demo/palmer_penguins.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/gal_penguins.png\" alt=\"f-24a/images/gal_penguins.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/demo/periodic_table.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/gal_periodic_table.png\" alt=\"f-24a/images/gal_periodic_table.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/demo/wind_rose.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/gal_wind_rose.png\" alt=\"f-24a/images/gal_wind_rose.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://nbviewer.org/github/JetBrains/lets-plot-docs/blob/master/source/examples/demo/heatmap_in_polar_coord.ipynb\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/gal_polar_heatmap.png\" alt=\"f-24a/images/gal_polar_heatmap.png\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n\n## Change Log\n\n[CHANGELOG.md](https://github.com/JetBrains/lets-plot/blob/master/CHANGELOG.md)\n\n\n## Code of Conduct\n\nThis project and the corresponding community are governed by the\n[JetBrains Open Source and Community Code of Conduct](https://confluence.jetbrains.com/display/ALL/JetBrains+Open+Source+and+Community+Code+of+Conduct).\nPlease make sure you read it.\n\n\n## License\n\nCode and documentation released under the [MIT license](https://github.com/JetBrains/lets-plot/blob/master/LICENSE).\nCopyright © 2019-2024, JetBrains s.r.o.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains%2Flets-plot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjetbrains%2Flets-plot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjetbrains%2Flets-plot/lists"}