3 poin oleh GN⁺ 2023-07-16 | 1 komentar | Bagikan ke WhatsApp
  • 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

Platform yang didukung dan fitur utama

1 komentar

 
GN⁺ 2023-07-16
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 Python

    • Saya penasaran apakah ggplot2 cukup serbaguna untuk membuat grafik apa pun yang diinginkan, atau justru punya gaya yang cukup kuat dalam cara atau jenis grafik yang bisa dibuat. Meski begitu, mungkin hal terbaik dari pustaka ini adalah bisa dipakai juga di Kotlin
  • Kekurangan 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

    • Video yang bagus. Ini menunjukkan dengan baik bahwa R memberi daya ekspresif tambahan dalam penjelasan dan visualisasi. Daripada belajar wrapper plotting Python lain, mungkin lebih baik belajar sedikit R
    • Benar bahwa Copilot cukup membantu untuk semantik dan opsi ggplot berbasis R, tetapi perbedaan seperti ini sepertinya bukan hambatan besar bagi large language model. Kalau mencoba mengubah skrip dari satu bahasa ke bahasa lain, terlihat seberapa baik large language model melakukan generalisasi, meski tentu tidak sempurna
      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 riset
    Akan bagus jika ggthemes, scientificplots [1], dan pustaka ggplot lainnya bisa di-porting atau diimplementasikan ulang ke lets-plot
    0: 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?

    • Fakta bahwa ini bisa membuat plot statistik dan tidak berbasis matplotlib saja sudah merupakan awal yang baik. Plotly itu rewel, Altair kurang enak dipakai, dan bokeh punya gaya imperatif seperti matplotlib serta agak berat
      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
    • Sepertinya ini dibuat untuk dipakai di Kotlin Notebooks baru dari JetBrains
    • Semua orang menginginkannya. Semua alternatif punya kekurangan besar, jadi bertambahnya persaingan itu bagus
  • 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?

  • 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

  • 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? pygg adalah library ringan yang mengubah sintaks ggplot Python menjadi kode R ggplot2
    Kekurangannya 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

    • Terlepas dari kekurangan apa pun pada ggplot, tidak ada matplotlib, base R, atau library plotting lain yang memungkinkan saya membuat plot dengan kecepatan yang mendekati kecepatan mengetik saya. Di ggplot itu bisa dilakukan hampir tanpa bantuan.
      Di matplotlib, saya baru bisa mendekati itu setelah banyak memakainya belakangan ini dan bahkan dengan bantuan GitHub Copilot
    • scale bukan tepatnya fungsi. Karena untuk menggambar sumbu dan legenda, fungsi invers juga dibutuhkan. Dan memang, sebagian besar kompleksitas scale sebenarnya berasal dari sumbu dan legenda