1 poin oleh GN⁺ 1 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Alat visualisasi berbasis sintaks SQL yang menggabungkan pengambilan data dan penyusunan grafik dalam satu alur melalui klausa seperti VISUALIZE, DRAW, PLACE, SCALE, dan LABEL
  • Dapat memetakan kolom ke atribut visual dan menyusun scatter plot, bar chart, histogram, boxplot, hingga elemen anotasi dalam struktur yang sama dengan cara komposisi layer
  • Hasil query SQL langsung diteruskan sebagai input visualisasi, dan beberapa layer memiliki struktur yang hanya mengambil agregasi melalui eksekusi satu query SQL, sehingga menguntungkan untuk pemrosesan data skala besar
  • Dirancang sebagai berkas eksekusi kecil dan terfokus yang bisa digunakan tanpa runtime R atau Python, sehingga cocok untuk integrasi dengan alat pelaporan berbasis kode dan asisten analisis AI
  • Versi saat ini adalah alpha-release, dengan rencana ekspansi seperti writer berperforma tinggi, tema, interaktivitas, language server, formatter, dan dukungan data spasial

Pengenalan ggsql

  • ggsql adalah implementasi grammar of graphics berbasis sintaks SQL yang menambahkan kemampuan visualisasi terstruktur ke dalam SQL
    • Dapat digunakan di Quarto, Jupyter notebooks, Positron, VS Code, dan lainnya
  • Dirancang agar pengguna SQL dapat menulis kode visualisasi dengan cara yang terasa familier
    • Susunan klausa SQL yang deklaratif dan dapat dikombinasikan juga diterapkan pada tata bahasa visualisasi
  • Menjelaskan motivasi dan contoh penggunaan sambil menguraikan sintaks inti ggsql

Contoh dasar

  • Plot pertama

    • Dapat membuat scatter plot dengan dataset bawaan penguins
      • VISUALIZE bill_len AS x, bill_dep AS y FROM ggsql:penguins
      • DRAW point
    • Pada VISUALIZE, kolom data dipetakan ke atribut visual, dan DRAW point membuat layer titik menggunakan pemetaan dasar tersebut
    • Hanya dengan menambahkan species AS color, pemisahan kategori warna bisa diterapkan
      • VISUALIZE bill_len AS x, bill_dep AS y, species AS color FROM ggsql:penguins
      • DRAW point
    • Dengan menambahkan DRAW smooth, layer garis regresi dapat ditumpuk di atas layer titik
      • Pemetaan warna per spesies tetap dipertahankan sehingga garis terpisah dibuat untuk tiap species
    • Mengadopsi pendekatan kombinasi komponen modular alih-alih jenis plot yang sudah ditentukan sebelumnya
    • Dengan struktur yang sama, dapat beralih ke visualisasi yang sama sekali berbeda
      • VISUALIZE island AS x, species AS color FROM ggsql:penguins
      • DRAW bar
  • Contoh lengkap

    • Bagian atas adalah query SQL biasa, sedangkan setelah VISUALIZE dibedakan sebagai query visualisasi
      • Dalam contoh ini digunakan backend DuckDB
    • Pada bagian SQL, ROW_NUMBER() dan QUALIFY digunakan untuk menyisakan hanya misi terbaru per nama dari astronauts.parquet
    • Lalu dua himpunan digabungkan
      • year_of_selection - year_of_birth dihitung sebagai age dan diberi kategori Age at selection
      • year_of_mission - year_of_birth dihitung sebagai age dan diberi kategori Age at mission
      • Kedua hasil digabungkan dengan UNION ALL
    • Dalam query visualisasi, setelah memetakan age AS x dan category AS fill, digunakan DRAW histogram
      • Menetapkan SETTING binwidth => 1, position => 'identity'
    • PLACE rule menambahkan anotasi posisi rata-rata yang telah dihitung sebelumnya
      • x => (34, 44), linetype => 'dotted'
    • PLACE text menambahkan anotasi teks
      • x => (34, 44, 60)
      • y => (66, 49, 20)
      • Label mencakup Mean age at selection = 34, Mean age at mission = 44, John Glenn was 77 on his last mission - the oldest person to travel in space!
      • Menetapkan hjust => 'left', vjust => 'top', offset => (10, 0)
    • SCALE fill TO accent mengubah nilai pemetaan fill ke palet warna accent
    • Klausa LABEL mengontrol judul, subjudul, label sumbu x, dan label legenda
      • Judul How old are astronauts on their most recent mission?
      • Subjudul Age of astronauts when they were selected and when they were sent on their mission
      • Sumbu x Age of astronaut (years)
      • fill => null

Struktur query visualisasi

  • Sebelum VISUALIZE adalah SQL murni, dan tabel hasilnya tidak dikembalikan sebagai tabel melainkan langsung diteruskan sebagai input visualisasi
  • Tabel atau CTE yang dibuat pada bagian SQL dapat dirujuk dalam query visualisasi
  • Jika data sudah dalam bentuk yang cocok untuk visualisasi, bagian SQL dapat dihilangkan
    • VISUALIZE year_of_selection AS x, year_of_mission AS y FROM 'astronauts.parquet'
  • VISUALIZE atau VISUALISE menandai akhir query SQL dan awal query visualisasi
  • Pemetaan berfungsi menghubungkan kolom ke atribut visual, yaitu aesthetics
    • Dalam contoh, age sesuai dengan posisi sumbu x, dan category dengan warna isian
  • DRAW menambahkan layer ke visualisasi
    • Ada tipe sederhana seperti point, dan ada juga tipe seperti histogram yang membutuhkan perhitungan agregasi berbasis bin
    • Layer dirender sesuai urutan definisinya
  • PLACE adalah klausa saudara dari DRAW, khusus untuk annotation yang memakai nilai literal alih-alih data tabel
    • Visualisasi contoh terdiri dari tiga layer: layer histogram, layer annotation garis aturan, dan layer annotation teks
    • Satu layer tidak selalu hanya berkorespondensi dengan satu objek grafis, dan bisa merender beberapa objek individual dengan tipe yang sama
  • SCALE adalah klausa yang mengubah nilai data menjadi nilai yang sesuai untuk aesthetic
    • Selain mengubah kategori string menjadi warna aktual, juga bisa menangani transformasi kontinu, mendefinisikan break point, atau mengatur tipe skala seperti ordinal maupun binned
  • LABEL mendukung penambahan dan pengubahan label teks seperti judul, subjudul, judul sumbu, dan judul legenda

Melangkah mundur sejenak

  • Contoh di atas memuat banyak sintaks, tetapi sekaligus mencakup bagian-bagian penting dari tata bahasa intinya
  • Banyak query visualisasi bisa berbentuk jauh lebih sederhana dari itu
  • Diberikan contoh boxplot tahun kelahiran per gender menggunakan astronauts.parquet
    • VISUALIZE sex AS x, year_of_birth AS y FROM 'astronauts.parquet'
    • DRAW boxplot
  • Panjang kode mungkin lebih besar dibanding sistem plotting lain, tetapi memiliki sifat lebih terstruktur, dapat dikombinasikan, dan deskriptif secara mandiri
  • Sifat-sifat ini memudahkan pengguna menginternalisasi cara kerja semua jenis plot, dan juga menguntungkan bagi asisten coding LLM di masa depan
  • Hubungan yang sama dapat dengan mudah diubah menjadi scatter plot jitter
    • DRAW point
    • SETTING position => 'jitter'
  • Jitter juga dapat diatur agar mengikuti distribusi data untuk memberi karakter violin plot
    • SETTING position => 'jitter', distribution => 'density'
  • Struktur sintaks dan komposabilitas seperti ini memudahkan pekerjaan berulang dalam analisis eksploratif dan desain visualisasi

Mengapa ggsql

  • Diajukan lima alasan pengembangan ggsql
    • Untuk mendukung analis data dan data scientist yang terutama bekerja dengan SQL
    • Karena SQL dan grammar of graphics sangat cocok satu sama lain
    • Untuk membangun alat visualisasi berbasis kode yang kuat tanpa bahasa pemrograman penuh seperti R atau Python
    • Karena kemampuan LLM yang sangat baik dalam menangani SQL dan kemungkinan antarmuka visualisasi baru
    • Untuk menerapkan 18 tahun pengalaman pengembangan ggplot2 di landasan yang baru
  • Hello, SQL user

    • Di tengah revolusi data science yang menyorot R dan Python, SQL tetap menjadi fondasi tepercaya untuk pekerjaan data
    • Ada banyak pekerja data yang hanya menggunakan SQL atau sebagian besar menggunakan SQL
    • Menurut artikel ini, pilihan visualisasi yang selama ini tersedia bagi mereka umumnya kurang optimal
      • Mengekspor data lalu memakai R atau Python
      • Menggunakan alat BI berbasis GUI yang kurang mendukung reproduksibilitas
      • Menggunakan alat visualisasi langsung di dalam query, namun dinilai belum cukup kuat atau ergonomis
    • Sintaks ggsql dirancang agar pengguna SQL dapat langsung memahaminya
      • Memanfaatkan ekspektasi terhadap klausa yang deklaratif dan dapat dikombinasikan
    • ggsql tidak hanya memperbaiki cara membuat visualisasi, tetapi juga berperan menarik pengguna SQL ke ekosistem pembuatan dan berbagi laporan berbasis kode dengan Quarto
  • Pengolahan data deklaratif, visualisasi deklaratif

    • SQL adalah bahasa spesifik domain untuk menangani data relasional yang tersimpan dalam satu atau lebih tabel
    • Sintaks SQL didasarkan pada konsep aljabar relasional dan menyediakan cara berpikir yang terstruktur tentang manipulasi data
    • Semantik SQL bukan fungsional, melainkan mendefinisikan himpunan operasi modular yang deklaratif
    • Grammar of graphics adalah kerangka teoretis yang memecah konsep visualisasi data menjadi komponen modular
    • Alat seperti ggplot2 menerjemahkan konsep ini ke implementasi nyata
    • Grammar of graphics juga, seperti SQL, mendefinisikan himpunan operasi modular yang deklaratif alih-alih fungsional
    • Kedua sistem ini memiliki banyak kesamaan dalam cara mendekati domain masing-masing, sehingga memungkinkan pipeline menyeluruh yang alami dan kuat dari data mentah hingga visualisasi akhir
  • No runtime, no problem

    • ggplot2 memerlukan instalasi R, dan plotnine memerlukan instalasi Python
    • Sebaliknya, alat visualisasi berbasis berkas eksekusi tunggal yang ringkas memiliki keunggulan yang jelas
      • Menanamkan berkas eksekusi kecil ke alat lain lebih mudah daripada membundel atau mewajibkan instalasi R/Python
      • Karena cakupannya kecil, lebih mudah membatasi eksekusi kode yang berbahaya atau tak disengaja melalui sandbox
    • Karakteristik ini menjadikan ggsql pilihan yang lebih menarik untuk integrasi dengan asisten analisis AI atau alat pelaporan berbasis kode yang menjalankan kode di berbagai lingkungan
    • Meninggalkan bahasa terinterpretasi memang membawa keterbatasan, tetapi juga memberi banyak keuntungan
    • Keuntungan terpentingnya adalah berkat struktur yang ketat, backend dapat menjalankan seluruh pipeline data per layer sebagai satu query SQL tunggal
      • Sebagai contoh, saat membuat bar plot dari 10 miliar data transaksi, hanya nilai count untuk tiap batang yang diambil dari data warehouse, bukan seluruh 10 miliar barisnya
      • Prinsip yang sama juga berlaku untuk tipe layer yang lebih kompleks seperti boxplot dan density plot
    • Ini kontras dengan kebanyakan alat visualisasi yang lebih dulu mematerialisasi seluruh data, lalu menghitung dan mem-plot-nya
  • SELECT pod_door FROM bay WHERE closed

    • Sudah terbukti bahwa LLM sangat efektif dalam mengubah bahasa alami menjadi SQL
    • Dinyatakan adanya harapan bahwa tingkat efektivitas yang sama juga dapat diterapkan pada ggsql
    • Di querychat, eksplorasi data visual berbasis bahasa alami sudah dimungkinkan melalui ggsql
    • Karena ggsql memiliki runtime yang lebih aman dan ringan dibanding R atau Python, ada keyakinan lebih tinggi saat menerapkan coding agent di lingkungan produksi
  • We are now wise beyond our years

    • Selama 18 tahun pengembangan dan pemeliharaan ggplot2 berarti ada 18 tahun akumulasi pemikiran tentang tata bahasa visualisasi data, kegunaan, dan desain
    • Tidak semua pengetahuan itu bisa dimasukkan kembali ke ggplot2
      • Keputusan lama dan ekspektasi pengguna harus dihormati, dan bahkan bila ditantang pun hanya bisa dilakukan sangat bertahap
    • ggsql adalah blank slate
      • Proyek yang dibangun ulang dari nol
      • Sistem yang dirancang untuk lingkungan tanpa ekspektasi lama tentang alat visualisasi
    • Disebutkan bahwa titik awal seperti ini memberi rasa bebas dan energi dalam proses pengembangan, dan hal itu juga tercermin pada pengalaman pengguna

Masa depan

  • Versi saat ini adalah alpha-release dan belum selesai
  • Diberikan daftar non-ekshaustif dari hal-hal yang ingin ditambahkan ke depan
    • Writer baru berperforma tinggi yang ditulis dari nol dalam Rust
    • Infrastruktur tema
    • Interaktivitas
    • Alur deployment end-to-end dari Posit Workbench atau Positron hingga Connect
    • ggsql language server penuh dan formatter kode
    • Dukungan data spasial
  • Apa artinya bagi pengembangan ggplot2

    • Disebutkan bahwa pengguna ggplot2 mungkin melihat pengumuman ggsql dengan campuran rasa khawatir dan antusias
    • Jawaban atas pertanyaan apakah Posit meninggalkan ggplot2 dan berfokus pada ggsql adalah tidak
    • ggplot2 sudah sangat matang dan stabil, tetapi tetap akan terus didukung dan dikembangkan
    • Diharapkan proses pengembangan ggsql juga akan membantu menghadirkan fitur-fitur baru ke ggplot2

Pelajari lebih lanjut

  • Jika ingin langsung mencoba ggsql, panduan instalasi dan tutorial tersedia di bagian Getting started di situs web ggsql
  • Halaman dokumentasi menampilkan seluruh kemampuan yang didukung ggsql
  • Disebutkan pula bahwa mereka menantikan masukan tentang pengalaman pengguna

1 komentar

 
GN⁺ 1 jam lalu
Opini Hacker News
  • Mungkin karena saya hanya membacanya sekilas, tetapi dari posting blog dan dokumentasinya saya merasa hubungannya dengan database SQL tidak dijelaskan dengan jelas
    Awalnya saya mengira ini semacam DSL visualisasi mirip SQL yang diproses oleh library chart frontend
    Dokumen anatomy terbaca seperti itu, tetapi di FAQ pada "Can I use SQL queries inside the VISUALISE clause" tertulis bahwa sebagian sintaks diteruskan langsung ke database
    Di halaman utama tertulis "ggsql interfaces directly with your database", tetapi tidak begitu terlihat bagaimana cara terhubungnya sehingga terasa membingungkan

    • Saya rasa kritik itu valid. Konsepnya sendiri memang punya struktur yang agak tidak biasa
      ggsql bisa terhubung langsung ke backend database, dan jika diinginkan juga bisa dijalankan dengan DuckDB in-memory
      Query visualisasi diterjemahkan menjadi query SQL untuk tiap layer visualisasi, lalu tabel hasilnya dipakai untuk rendering
      Misalnya query seperti VISUALISE page_views AS x FROM visits DRAW smooth akan diubah menjadi SQL yang menghitung smoothing kernel atas data, lalu titik-titik yang dikembalikan dipakai untuk menggambar line chart final
    • Di ggsql ada konsep reader, dan inilah yang berperan sebagai antarmuka penghubung ke database SQL
      reader menangani koneksi database dan pembuatan SQL dialect yang sesuai untuk tiap DB
      Pada tahap alpha saat ini, yang didukung adalah duckdb, sqlite, dan reader ODBC eksperimental, dan pengembangan terutama berfokus pada DuckDB berbasis file lokal
      Ide utamanya adalah mengubah query visualisasi menjadi beberapa query SQL, menjalankannya di database, lalu menyusun chart hanya dari sedikit hasil yang dikembalikan
      Jadi meskipun jumlah baris sangat besar, statistik yang diperlukan untuk histogram bisa dihitung lewat SQL, lalu hanya beberapa titik yang dibutuhkan untuk menggambar tinggi batang yang diambil
      Default-nya adalah koneksi DuckDB in-memory, dan di CLI bisa terhubung ke file di disk atau URI ODBC lewat --reader
      Di Positron, ini bisa diatur lebih mudah lewat pane "Connections", dan di ggsql Jupyter kernel reader bisa ditentukan dengan magic SQL comment
      Kami juga berencana memperkuat dokumentasi soal integrasi dengan alat eksternal seperti ini
    • Saya juga punya pertanyaan yang sama. Akan jauh lebih mudah dipahami jika ada contoh yang menunjukkan alur wiring dan dependensi secara utuh untuk membuat grafik dari server database eksternal
    • Menurut saya SQL dan database bukanlah konsep yang sama
      SQL adalah bahasa manipulasi data deklaratif, dan memang sering dipakai untuk meng-query database, tetapi tidak terikat hanya pada database
      SQL bisa diterapkan pada flat file, stream data, atau data di memori program
      Sebaliknya, menurut saya database juga bisa di-query tanpa SQL
  • Saat membaca sekilas, saya mencoba mencari penjelasan kenapa ini dibutuhkan dan masalah apa yang diselesaikannya, tetapi tidak langsung terasa
    Saya sempat mengira ini untuk memvisualisasikan tabel dari database SQL jarak jauh secara langsung, sambil menghilangkan langkah menariknya dulu ke R data frame lalu menjalankan ggplot
    Tapi saya juga bertanya-tanya kenapa harus membuat bahasa mirip SQL yang baru
    Di R sudah ada dbplyr yang menerjemahkan antara R dan SQL, jadi bukankah akan lebih langsung jika ggplot diperluas agar mendukung objek tbl dari dbplyr secara langsung dan menghasilkan SQL
    Atau mungkin karena SQL sendiri sudah sangat akrab, sehingga diasumsikan banyak orang ingin melakukan pekerjaan ala ggplot dengan sintaks ini
    Baru setelah hampir selesai membaca dokumentasinya, saya paham bahwa ini adalah aplikasi visualisasi mandiri dengan backend DuckDB dan SQLite, saat ini merender dengan Vegalite, dan ke depan ingin menambah backend serta renderer
    Seperti komentar di bawah, ini tampaknya alat untuk memungkinkan pengguna yang berpusat pada SQL membuat visualisasi tanpa harus tahu Python atau R

    • Saya membaca pengumuman ini dan merasa cukup tertarik, jadi saya rasa saya bisa menjelaskan dari sudut pandang saya kenapa ini menarik
      Tentu saya setuju bahwa tulisan pengumumannya seharusnya menjelaskan hal itu dengan lebih baik
      Menurut pengalaman saya, bahasa bersama yang sering dimiliki analis, ilmuwan, dan engineer pada akhirnya adalah SQL
      Hal yang sama memang bisa dilakukan di R, tetapi proyek nyata tidak selalu ditulis dalam R atau Python, sementara database SQL dan engine aksesnya biasanya sudah ada
      Saya juga sering memakai sel SQL dengan DuckDB backend di marimo notebook, dan akan sangat nyaman jika bisa melakukan plotting langsung dari SQL di sana
      Terakhir, saya selalu merasa API plotting Python cukup sulit dihafal dan dikuasai
      Bahkan untuk menggambar scatterplot sederhana dengan matplotlib pun boilerplate-nya terlalu banyak, jadi menurut saya akan bagus jika ada sintaks yang seragam di dalam bahasa query yang sama
    • Ini bukan soal ggplot itu sendiri, melainkan upaya menggabungkan sintaks bergaya SQL dengan Grammar of Graphics
      Titik menariknya ada pada kombinasi SQL sebagai antarmuka dan formalitas GoG ketimbang pada library tertentu
      Renderer atau runtime aktual memang penting, tetapi menurut saya itu lebih dekat ke detail implementasi
    • Di mata saya, ini tampak seperti alat untuk pengguna SQL yang tidak tahu Python atau R
    • Menurut saya memang ada kelebihan pada gagasan sebagai bahasa deklaratif untuk membuat chart langsung dari SQL
      Tentu ini bukan sesuatu yang mustahil dilakukan dengan jumlah baris kode serupa di R, Python, atau matplotlib
      Tetapi mensandboxing lingkungan seperti itu agar aman terhadap input berbahaya itu sulit, sedangkan dengan bahasa deklaratif seperti ini akan lebih mudah meng-host layanan di mana pengguna tak tepercaya memasukkan ggsql dan hasilnya hanya chart yang dihasilkan
      Dalam arti itu, ini jelas berguna
      Tetapi untuk sebagian besar penggunaan umum, mungkin tetap lebih mudah meminta LLM favorit Anda menghasilkan kode matplotlib
  • Saya mendukung proyeknya, dan sangat setuju bahwa konsep ini sangat cocok dengan SQL
    Di R, struktur menyiapkan data dengan WITH lalu menambahkan VISUALIZE setelahnya hampir sama dengan cara saya menulis kode plotting
    Namun selain kelebihan sebagai DSL yang sederhana, saya masih belum yakin apa kelebihannya dibanding ggplot2 sampai layak menanggung biaya membuat DSL lagi
    Hampir satu-satunya alasan saya meninggalkan ggplot2 untuk visualisasi adalah karena begitu keluar dari kasus standar di mana geom sudah tersedia, membuat visualisasi non-standar menjadi cukup sulit
    Saat ingin membuat sesuatu yang sedikit berbeda, sering kali jauh lebih mudah turun ke primitive drawing tingkat bawah daripada memaksa membuat adaptor yang ramah ggplot
    Bahkan membungkus spesifikasi parsial yang sering dipakai ke dalam fungsi pun terasa kurang mulus tergantung apakah itu dikomposisikan dengan + atau dirangkai dengan pipe seperti |> atau %>%

    • Tujuan kami bukan untuk membuat siapa pun beralih dari ggplot2
      Dan kami sama sekali tidak berencana menghentikan pengembangan ggplot2
      ggsql sebagian adalah proyek untuk menjangkau kelompok pengguna baru dan menempatkan visualisasi yang kuat dalam konteks baru
      Jika Anda menghabiskan sebagian besar waktu di R, kemungkinan Anda bukan pengguna inti yang dituju
      Meski begitu, ada beberapa unsur menarik yang tidak dimiliki ggplot2, jadi mungkin tetap menyenangkan untuk dieksplorasi
    • Sedikit menyimpang, tetapi |> dan %>% bukan operator yang sama
      Base pipe |> yang relatif lebih baru memang lebih cepat, tetapi tidak mendukung fitur seperti placeholder titik di %>% untuk meneruskan ke posisi selain argumen pertama fungsi
      Karena itu, pada beberapa kasus %>% bisa membuat ekspresi sedikit lebih rapi
  • Ini benar-benar terasa bagus
    Kami juga sampai pada kesimpulan serupa saat membuat GFQL, yaitu graph dataframe query language
    Secara khusus, kami membutuhkan antarmuka yang ramah LLM untuk stack visualisasi dan analisis yang bisa dipakai tanpa code sandbox
    Kami melihat bahwa hanya dengan ekstensi opencypher dasar pun sudah bisa dibuat pipeline analisis visual GPU yang cukup kaya, dan karena alasan yang sama pendekatan menuju SQL di dunia tabel juga tampak sangat masuk akal
    Untuk contoh dari sisi GFQL, Anda bisa melihat overall pipelines yang mencakup data loading, transformasi shape, enrichment berbasis algoritme, visual encoding, dan pipeline kelas satu, serta declarative visual encodings dalam bentuk pemanggilan sederhana

  • Ini terlihat cukup bagus
    Hanya saja saya merasa akan bagus jika ada cara yang bisa degradasi dengan elegan bahkan di lingkungan yang tidak mendukung sintaksnya
    Saya juga pernah merancang pendekatan serupa di dalam SQL, meski jauh lebih sederhana daripada GoG, dan pendekatan itu bisa mengalami degradasi
    Sintaksnya memang tidak enak dibaca, tetapi bentuknya seperti sqlnb spec

    • Saya agak bingung dengan maksud tepat dari "degrade in context"
      Kalau bisa, akan bagus jika Anda menjelaskannya sedikit lebih konkret
  • Alat lain dalam arus yang sama adalah Shaper berbasis DuckDB
    Pendekatannya menangani seluruh dashboard dengan cara SQL-first, dan dari dokumen getting started arahnya terasa mirip

  • Pertama-tama, ggsql terlihat sangat keren dan saya ingin segera mencobanya
    Tetapi ada satu hal yang terasa mencolok hilang dari dokumentasinya, yaitu sulit menemukan penjelasan tentang format output
    Apakah bisa diekspor ke PDF, apakah mendukung SVG atau PNG, dan bagaimana mengatur kontrol output seperti ukuran lebar-tinggi tidak begitu terlihat
    Petunjuk terdekat yang saya temukan hanya chart.display() dan chart.save("chart.html") di dokumentasi library Python

    • Saat ini modul writer hanya khusus vegalite, dan output-nya berupa spesifikasi vegalite dalam bentuk JSON
      Output ini sudah bisa dirender menjadi chart interaktif, SVG, PNG, dan lain-lain dengan alat yang sudah ada, dan kontrol seperti ukuran pun mengikuti pengaturan alat tersebut
      ggsql Jupyter kernel bisa memakai spesifikasi vegalite ini untuk menampilkan chart di dalam dokumen Quarto
      Ke depan kami berencana membuat writer berkinerja tinggi baru yang tidak melalui tahap perantara vegalite ini, jadi pada saat itu kami mungkin bisa memberi jawaban yang lebih jelas untuk pertanyaan seperti ini
  • Saya penasaran apakah ada rencana integrasi dengan paket ekstensi ggplot2 di masa dekat atau jauh
    Maaf jika ini sebenarnya sudah disebutkan sebelumnya

    • Menurut saya akan sulit membawa berbagai niche geom yang dibuat komunitas ggplot2 dalam waktu dekat
      Tujuan proyek ini bukan untuk menggantikan ggplot2, melainkan menawarkan pendekatan yang berbeda
      Ia bisa melakukan banyak hal yang dilakukan ggplot2, dan mungkin juga beberapa hal yang tidak bisa dilakukan ggplot2, tetapi untuk waktu yang lama ke depan saya kira ggplot2 akan tetap lebih kuat untuk banyak pekerjaan
  • Ini terlihat sangat keren dan saya berencana segera mencobanya
    Yang paling mengena bagi saya adalah penjelasan di dokumen grammar
    Alurnya memilih data dengan SELECT yang sudah familiar, lalu beralih dari tabel ke plot dengan VISUALIZE atau VISUALISE, kemudian memetakan aesthetics dengan DRAW, lalu menumpuk SCALE, FACET, dan LABEL, yang terasa meneruskan cara berpikir struktural SQL apa adanya

  • Saya sangat suka pendekatan layering-nya
    Saat mulai melampaui chart dasar, pendekatan ini tampak menyelesaikan dengan baik masalah yang sering saya temui pada alat campuran SQL-visualisasi lain