Lets-Plot: Library plotting open-source untuk data statistik
(lets-plot.org)- Lets-Plot adalah library plotting multiplatform yang mendukung visualisasi data statistik di Python dan Kotlin, berdasarkan prinsip Grammar of Graphics
- Dengan menyediakan implementasi terpisah untuk Python dan Kotlin, library ini dapat digunakan sesuai alur kerja masing-masing ekosistem, mulai dari lingkungan notebook hingga IDE dan pengembangan aplikasi
- Di Python, plot dapat dilihat tidak hanya di notebook, tetapi juga di PyCharm dan SciView pada IntelliJ IDEA
- Di Kotlin, library ini menargetkan berbagai use case visualisasi, mulai dari notebook Kotlin hingga aplikasi Compose-Multiplatform
- Menyediakan geocoding, plotting GeoDataFrame, serta kustomisasi tooltip dan anotasi, sehingga dapat digunakan untuk data spasial dan penyusunan plot interaktif
Ringkasan Lets-Plot
- Lets-Plot adalah library plotting multiplatform yang berbasis prinsip Grammar of Graphics
- Jika ingin mempelajari ggplot2 bersama Grammar of Graphics, rujukan yang disarankan adalah “ggplot2: Elegant Graphics for Data Analysis” karya Hadley Wickham
- Materi awal dan contoh tersedia di tautan berikut
Platform yang didukung dan fitur utama
-
Python
- Library visualisasi Python yang disediakan sebagai Grammar of Graphics for Python
- Dapat digunakan di notebook Python
- Plot juga dapat dilihat di SciView pada IDE PyCharm dan IntelliJ IDEA
-
Kotlin
- Library visualisasi multiplatform Kotlin yang disediakan sebagai Grammar of Graphics for Kotlin
- Menargetkan use case dalam ekosistem Kotlin, mulai dari notebook Kotlin hingga aplikasi Compose-Multiplatform
-
Visualisasi geospasial
-
Tooltip dan anotasi
- Untuk tooltip dan annotation pada layer plot, konten, format nilai, dan tampilan dapat dikustomisasi
1 komentar
Komentar Hacker News
Keren. Sepertinya berbasis grammar of graphics ala ggplot2. Contohnya bisa dilihat di sini: https://lets-plot.org/pages/charts.html
Plot datanya juga terlihat cukup bagus: https://lets-plot.org/pages/charts.html#discrete-icon-discre...
Plot distribusinya juga demikian: https://lets-plot.org/pages/charts.html#visualization-of-dis...
Saya penasaran bagaimana proyek ini dibandingkan dengan
plotnine, pustaka plotting ala ggplot2 untuk PythonKekurangan pustaka keluarga ggplot di bahasa selain R adalah hilangnya jumlah pustaka addon hebat yang sangat besar dari versi aslinya[1]. Secara pribadi, saya banyak memproses data di Python lalu mengekspornya ke R, dan membuat semua grafik di sana
Rasanya orang-orang statistik memang lebih menganggap grafik itu penting, dan menghabiskan lebih banyak waktu untuk memoles kualitasnya. Selain itu, Copilot sangat membantu untuk semantik dan opsi ggplot berbasis R karena ada banyak materi pembelajaran. Saya kurang yakin apakah hal yang sama berlaku untuk perbedaan halus pada pustaka-pustaka tiruan ggplot
[1] https://youtu.be/7UjA_5gNvdw
Jika diberi konteks yang cukup, kemungkinan besar hasilnya akan cukup berguna
Ini juga terlihat sangat mirip dengan
plotnine[0], yang menyediakan antarmuka grammar of graphics untuk Python. Tetap saja, saya suka ggplot dan berharap bisa memakai ini untuk risetAkan bagus jika
ggthemes,scientificplots[1], dan pustaka ggplot lainnya bisa di-porting atau diimplementasikan ulang ke lets-plot0: https://plotnine.readthedocs.io/en/stable/
1: https://github.com/garrettj403/SciencePlots
Saya tidak paham kenapa ini dibutuhkan. Apakah ada yang benar-benar sedang sangat membutuhkan satu lagi pustaka plotting?
Seaborn memang bagus, tetapi masih harus bergulat dengan abstraksi yang bocor di atas matplotlib sehingga susah dikombinasikan, dan juga sulit mendapatkan interaktivitas. Jadi saya memang menginginkan sesuatu seperti ini. Saya ingin chart interaktif yang bagus, cepat, dan terasa native, sampai pernah mencoba membuatnya sendiri. Ggplot membuat kita fokus hanya pada apa yang ingin digambar dan memasukkan dataframe, dan ini juga terlihat seperti itu
Apakah ada tutorial atau panduan yang berfokus pada Python untuk membuat plot dengan pendekatan grammar of graphics ini? Atau saya harus membaca buku ggplot2 dan memindahkan contoh-contoh R ke Python?
https://vega.github.io/vega/docs/
Semuanya Kotlin Multiplatform, dengan hanya wrapper Python tipis di atasnya. Cukup mengejutkan
Masalah terbesar pada library plotting adalah tidak bisa langsung menangani ratusan juta titik data dengan baik. Dalam proyek data science sebelumnya, saya sudah mencoba semua library plotting utama, tetapi tidak ada yang benar-benar bekerja dengan baik begitu melewati beberapa juta titik.
Saya ingin grafik yang bisa divisualisasikan dan di-zoom secara real-time, dan itulah yang menjadi bagian sulit dari proyek tersebut. Hanya ada satu produk yang mengklaim bisa menanganinya dengan cloud GPU, tetapi itu memerlukan langganan berbayar dan data harus diunggah ke cloud. Saya tidak mencari satu library lagi, melainkan library yang benar-benar bekerja dengan baik dan bisa memanfaatkan GPU lokal untuk plotting
Kalau scroll ke bagian contoh, ada plot dengan banyak titik: https://wwwtyro.github.io/candygraph/examples/dist/
https://github.com/epezent/implot
Java: https://github.com/SpaiR/imgui-java
Ada juga untuk Rust:
https://www.egui.rs/#Demo
Lihat demo Open Plot. Di web sepertinya bisa dengan mengompilasinya ke WASM. Mungkin grafiknya saja dibuat dengan WASM lalu di-embed ke DOM yang sudah ada
https://github.com/holoviz/datashader adalah pilihan yang lumayan bagus di ekosistem Python
ggplot2 sangat bagus untuk eksplorasi data. Dulu ini adalah keunggulan R yang nyaris tak tertandingi
Untuk dashboard, saya lebih suka Apache ECharts:
https://github.com/ecomfe/awesome-echarts
Sangat keren. Apakah ini semacam implementasi ulang ggplot2 di Python?
pyggadalah library ringan yang mengubah sintaks ggplot Python menjadi kode R ggplot2Kekurangannya adalah tidak interaktif dan dijalankan di R, sedangkan kelebihannya adalah benar-benar menjalankan implementasi R ggplot buatan Hadley
https://github.com/sirrice/pygg
Menurut saya agak mengecewakan bahwa ini pada dasarnya menyalin ggplot. ggplot bukan jawaban final untuk desain library visualisasi
Misalnya, di ggplot ada konsep scale yang secara tepat bersesuaian dengan fungsi. Ini hanya menambah beban konseptual yang tidak perlu pada library. Menghapusnya adalah perbaikan yang mudah
Di matplotlib, saya baru bisa mendekati itu setelah banyak memakainya belakangan ini dan bahkan dengan bantuan GitHub Copilot