ggsql - SQL için grafik dilbilgisi
(opensource.posit.co)- SQL sözdizimi tabanlı bir görselleştirme aracı olup
VISUALIZE,DRAW,PLACE,SCALE,LABELgibi ifadelerle veri sorgulama ve grafik oluşturmayı tek bir akışta birleştirir - Sütunları görsel özelliklere eşleyip katman birleştirme yaklaşımıyla saçılım grafiği, çubuk grafik, histogram, kutu grafiği ve açıklama öğelerini aynı yapı içinde kurmayı mümkün kılar
- SQL sorgu sonucunu doğrudan görselleştirme girdisi olarak aktarır; bazı katmanlar ise tek bir SQL sorgusu çalıştırarak yalnızca özet veriyi aldığı için büyük ölçekli veri işlemede avantaj sağlar
- R veya Python çalışma zamanı olmadan da kullanılabilen küçük ve odaklı bir çalıştırılabilir dosya yaklaşımıyla tasarlanmıştır; bu da kod tabanlı raporlama araçları ve yapay zeka analiz yardımcılarıyla entegrasyona uygunluğunu öne çıkarır
- Mevcut sürüm alpha-release durumundadır; yüksek performanslı writer, temalar, etkileşimlilik, language server, formatter ve mekânsal veri desteği gibi genişleme planları sunulmuştur
ggsql'e giriş
- ggsql, SQL sözdizimine dayalı bir graphics grammar uygulamasıdır ve SQL'e yapılandırılmış görselleştirme yetenekleri ekler
- Quarto, Jupyter notebooks, Positron, VS Code gibi ortamlarda kullanılabilir
- SQL kullanıcılarının aşina olduğu bir şekilde görselleştirme kodu yazabilmesi için tasarlanmıştır
- SQL'in bildirime dayalı ve birleştirilebilir ifade yapısını görselleştirme diline de uygular
- Gerekçeyi ve kullanım örneklerini birlikte sunarak ggsql'in temel sözdizimini açıklar
Temel örnek
-
İlk grafik
- Yerleşik
penguinsveri kümesiyle bir saçılım grafiği oluşturulabilirVISUALIZE bill_len AS x, bill_dep AS y FROM ggsql:penguinsDRAW point
VISUALIZEiçinde veri sütunları görsel özelliklere eşlenir veDRAW pointbu varsayılan eşlemeyi kullanarak nokta katmanını oluşturur- Yalnızca
species AS coloreklenerek renk kategorileri uygulanabilirVISUALIZE bill_len AS x, bill_dep AS y, species AS color FROM ggsql:penguinsDRAW point
DRAW smootheklenerek nokta katmanının üzerine regresyon çizgisi katmanı bindirilebilir- Tür bazlı renk eşlemesi korunur; böylece her species için ayrı bir çizgi oluşturulur
- Önceden tanımlı grafik türleri yerine modüler bileşenlerin birleştirildiği bir yaklaşım benimsenir
- Aynı yapı korunarak tamamen farklı bir görselleştirmeye geçilebilir
VISUALIZE island AS x, species AS color FROM ggsql:penguinsDRAW bar
- Yerleşik
-
Tam örnek
- Üst kısım normal SQL sorgusudur,
VISUALIZEsonrasındaki bölüm ise görselleştirme sorgusudur- Örnekte DuckDB backend'i kullanılır
- SQL kısmı,
astronauts.parquetiçinden isim başına yalnızca en güncel görevi bırakmak içinROW_NUMBER()veQUALIFYkullanır - Sonrasında iki küme birleştirilir
year_of_selection - year_of_birthdeğeriageolarak hesaplanır veAge at selectionkategorisi atanıryear_of_mission - year_of_birthdeğeriageolarak hesaplanır veAge at missionkategorisi atanır- İki sonuç
UNION ALLile birleştirilir
- Görselleştirme sorgusunda
age AS x,category AS filleşlemesinden sonraDRAW histogramkullanılırSETTING binwidth => 1, position => 'identity'belirtilir
PLACE ruleile önceden hesaplanmış ortalama konumları için açıklama eklenirx => (34, 44),linetype => 'dotted'
PLACE textile metin açıklamaları eklenirx => (34, 44, 60)y => (66, 49, 20)- Etiketlerde
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!yer alır hjust => 'left',vjust => 'top',offset => (10, 0)belirtilir
SCALE fill TO accentilefilleşleme değerleriaccentrenk paletine dönüştürülürLABELifadesiyle başlık, alt başlık, x ekseni etiketi ve lejand etiketi kontrol edilir- Başlık
How old are astronauts on their most recent mission? - Alt başlık
Age of astronauts when they were selected and when they were sent on their mission - x ekseni
Age of astronaut (years) fill => null
- Başlık
- Üst kısım normal SQL sorgusudur,
Görselleştirme sorgusunun yapısı
VISUALIZEöncesi bölüm saf SQL'dir ve sonuç tablo olarak döndürülmek yerine doğrudan görselleştirme girdisi olarak iletilir- SQL bölümünde oluşturulan tablo veya CTE'ler görselleştirme sorgusunda referans alınabilir
- Veri zaten görselleştirmeye uygun yapıdaysa SQL bölümü atlanabilir
VISUALIZE year_of_selection AS x, year_of_mission AS y FROM 'astronauts.parquet'
VISUALIZEveyaVISUALISE, SQL sorgusunun bittiğini ve görselleştirme sorgusunun başladığını gösterir- Eşlemeler, sütunları görsel özelliklere yani aesthetics'e bağlar
- Örnekte
agex ekseni konumuna,categoryise dolgu rengine karşılık gelir
- Örnekte
DRAW, görselleştirmeye katman eklerpointgibi basit türler olduğu gibi,histogramgibi aralıklama ve toplulaştırma hesaplaması gerektiren türler de vardır- Katmanlar tanımlandıkları sırayla render edilir
PLACE,DRAWile kardeş bir ifadedir ve tablo verisi yerine sabit değer kullanan, yalnızca annotation amaçlı bir ifadedir- Örnek görselleştirme; histogram katmanı, kural çizgisi annotation katmanı ve metin annotation katmanı olmak üzere üç katmandan oluşur
- Bir katman her zaman yalnızca tek bir grafik nesnesine karşılık gelmez; aynı türde birden çok ayrı nesne render edebilir
SCALE, veri değerlerini ilgili aesthetic'e uygun değerlere dönüştüren ifadedir- Yalnızca metin kategorilerini gerçek renklere çevirmekle kalmaz; sürekli dönüşümler, break point tanımları ve ordinal ya da binned gibi ölçek türleri de ayarlanabilir
LABEL, başlık, alt başlık, eksen başlığı, lejand başlığı gibi metin etiketlerini ekleme ve değiştirmeyi destekler
Bir adım geri çekilip bakınca
- Yukarıdaki örnek çok sayıda ifade içerir, ancak temel sözdiziminin önemli kısımlarını tek seferde kapsar
- Pek çok görselleştirme sorgusu bundan çok daha basit olabilir
astronauts.parquetkullanılarak cinsiyete göre doğum yılı kutu grafiği örneği verilirVISUALIZE sex AS x, year_of_birth AS y FROM 'astronauts.parquet'DRAW boxplot
- Kod uzunluğu diğer çizim sistemlerinden daha fazla olabilir, ancak daha yapısal, birleştirilebilir ve kendini açıklayan özellikler taşır
- Bu özellikler, kullanıcıların her tür grafik davranışını içselleştirmesini kolaylaştırır ve gelecekteki LLM kodlama yardımcıları için de avantaj sağlar
- Aynı ilişki kolayca jitter'lı bir saçılım grafiğine dönüştürülebilir
DRAW pointSETTING position => 'jitter'
- Jitter'ın veri dağılımını izlemesi sağlanarak violin plot benzeri bir karakter kazandırılabilir
SETTING position => 'jitter', distribution => 'density'
- Bu sözdizimsel yapı ve birleştirilebilirlik, keşifsel analiz ve görselleştirme tasarımında yinelemeli çalışmayı kolaylaştırır
Neden ggsql?
- ggsql'in geliştirilme nedeni olarak beş madde sunulur
- Ağırlıklı olarak SQL ile çalışan veri analistlerini ve veri bilimcilerini desteklemek
- SQL ile graphics grammar arasındaki yüksek uyum
- R veya Python gibi tam teşekküllü programlama dilleri olmadan da güçlü, kod tabanlı bir görselleştirme aracı kurmak
- LLM'lerin güçlü SQL işleme becerileri ve yeni görselleştirme arayüzü olasılıkları
- ggplot2 üzerinde 18 yıllık geliştirme deneyimini yeni bir zeminde uygulamak
-
Hello, SQL user
- Veri bilimi devrimi boyunca R ve Python öne çıkmış olsa da SQL, veri çalışmaları için güvenilir temel olmayı sürdürdü
- Yalnızca SQL veya çoğunlukla SQL kullanan çok sayıda veri çalışanı bulunuyor
- Metne göre, bu kişiler için mevcut görselleştirme seçenekleri genelde ideal değil
- Veriyi dışa aktarıp R veya Python kullanmak
- Tekrarlanabilirlik desteği sınırlı GUI tabanlı BI araçlarını kullanmak
- Sorgu içinde doğrudan çalışan görselleştirme araçları kullanmak; ancak bunların yeterince güçlü veya ergonomik olmadığı düşünülüyor
- ggsql sözdizimi, SQL kullanıcılarının hemen kavrayabileceği şekilde tasarlanmıştır
- Birleştirilebilir ve bildirime dayalı ifadelere yönelik beklentilerden yararlanır
- ggsql, yalnızca görselleştirmeyi iyileştirmekle kalmaz; SQL kullanıcılarını Quarto tabanlı, kod tabanlı rapor oluşturma ve paylaşma ekosistemine de çekmeyi hedefler
-
Bildirime dayalı veri işleme, bildirime dayalı görselleştirme
- SQL, bir veya daha fazla tabloda depolanan ilişkisel verilerle çalışmak için alan odaklı bir dildir
- SQL sözdizimi ilişkisel cebir kavramlarına dayanır ve veri manipülasyonunu yapısal biçimde düşünmeyi sağlar
- SQL anlambilimi fonksiyonel değil, bildirime dayalı modüler işlemler kümesi tanımlar
- graphics grammar, veri görselleştirme kavramlarını modüler bileşenlere ayıran kuramsal bir çerçevedir
- ggplot2 gibi araçlar bu kavramı pratik uygulamaya dönüştürür
- graphics grammar da fonksiyonel olmaktan çok bildirime dayalı modüler işlemler kümesi tanımlar
- İki sistem, kendi alanlarına yaklaşım biçimlerinde büyük ortaklık taşır; ham veriden nihai görselleştirmeye kadar doğal ve güçlü bir uçtan uca akış kurulabilir
-
No runtime, no problem
- ggplot2 için R kurulumu, plotnine için Python kurulumu gerekir
- Buna karşılık tek ve odaklı bir çalıştırılabilir dosyaya dayanan bir görselleştirme aracının belirgin avantajları vardır
- Küçük bir çalıştırılabilir dosyayı başka araçların içine gömmek, R/Python paketlemek veya kurulum zorunluluğu getirmekten daha kolaydır
- Kapsam dar olduğu için kötü niyetli ya da hatalı kod çalıştırmayı sandbox içinde sınırlamak daha kolaydır
- Bu özellikler, ggsql'i yapay zeka analiz yardımcılarına veya farklı ortamlarda kod çalıştıran kod tabanlı raporlama araçlarına entegre etmek için daha cazip hale getirir
- Yorumlanan dillerden uzaklaşmanın bazı kısıtları vardır, ama önemli kazanımları da bulunur
- En önemli avantaj, katı yapı sayesinde backend'in katman başına tüm veri hattını tek bir SQL sorgusu olarak çalıştırabilmesidir
- Örneğin 10 milyar satırlık işlem verisiyle çubuk grafik çizilirken, veri ambarından yalnızca her çubuğun count değeri alınır; 10 milyar satırın tamamı taşınmaz
- Aynı ilke kutu grafiği, density plot gibi daha karmaşık katman türleri için de geçerlidir
- Bu, önce tüm veriyi somutlaştırıp sonra hesaplayarak çizen çoğu görselleştirme aracından ayrışan bir özelliktir
-
SELECT pod_door FROM bay WHERE closed- LLM'lerin doğal dili SQL'e dönüştürmede çok etkili olduğu kanıtlanmıştır
- Aynı düzeyde bir etkinliğin ggsql için de geçerli olacağı beklentisi dile getirilir
querychatiçinde ggsql aracılığıyla doğal dil tabanlı görsel veri keşfi zaten mümkündür- ggsql, R veya Python'a kıyasla daha güvenli ve hafif bir çalışma zamanı sunduğundan, üretim ortamlarına kodlama ajanı dağıtırken daha yüksek güven verir
-
We are now wise beyond our years
- ggplot2'nin 18 yıllık geliştirme ve bakım süreci, veri görselleştirme dilbilgisi, kullanılabilirlik ve tasarım konusunda 18 yıllık birikmiş düşünce anlamına gelir
- Bu bilginin tamamı yeniden ggplot2'ye geri aktarılamaz
- Uzun zaman önce alınmış kararları ve kullanıcı beklentilerini gözetmek gerekir; değişim olsa bile ancak çok kademeli olabilir
- ggsql bir blank slatetir
- Sıfırdan inşa edilen bir projedir
- Görselleştirme araçlarına dair yerleşik beklentilerin bulunmadığı ortamlar için tasarlanmıştır
- Bu başlangıç noktası, geliştirme sürecine özgürlük ve enerji kattı; bunun kullanıcı deneyimine de yansıdığı belirtiliyor
Gelecek
- Mevcut sürüm alpha-release düzeyindedir ve henüz tamamlanmamıştır
- İleride eklenmesi planlanan bazı başlıklar sıralanır
- Rust ile sıfırdan yazılmış yeni, yüksek performanslı bir writer
- Tema altyapısı
- Etkileşimlilik
- Posit Workbench veya Positron'dan Connect'e kadar uçtan uca dağıtım akışı
- Tam özellikli bir ggsql language server ve kod formatter
- Mekânsal veri desteği
-
Bunun ggplot2 geliştirmesi açısından anlamı ne?
- ggplot2 kullanıcılarının ggsql duyurusuna hem kaygı hem de heyecanla bakabileceği belirtilir
- Posit'in ggplot2'yi geri plana atıp ggsql'e odaklanıp odaklanmadığı sorusunun yanıtı hayırdır
- ggplot2 zaten çok olgun ve kararlı, ancak desteklenmeye ve genişletilmeye devam edecek
- ggsql geliştirme sürecinin ggplot2'ye yeni özellikler kazandırılmasına da katkı sağlaması umuluyor
Daha fazlasını öğrenin
- ggsql'i hemen kullanmak isteyenler, ggsql web sitesindeki Getting started bölümünden kurulum talimatlarını ve öğreticileri bulabilir
- Dokümantasyon sayfasında ggsql'in desteklediği tüm özellikler görülebilir
- Kullanıcı deneyimine ilişkin geri bildirimlerin beklendiği de belirtilir
1 yorum
Hacker News yorumları
Yazıyı hızlıca gözden geçirmiş olmamdan da kaynaklanıyor olabilir ama, blog yazısı ve dokümanlara bakınca SQL veritabanıyla ilişkisi net biçimde açıklanmamış gibi geldi
İlk başta bunun, frontend chart kütüphanelerinin işlediği SQL benzeri bir görselleştirme DSL’i olduğunu tahmin etmiştim
anatomy dokümanı bana böyle hissettirdi ama SSS içindeki "Can I use SQL queries inside the VISUALISE clause" bölümünde bazı sözdiziminin doğrudan veritabanına iletildiği yazıyordu
Ana sayfada "ggsql interfaces directly with your database" deniyor ama gerçekte nasıl bağlandığı pek anlaşılmadığı için kafa karıştırıcıydı
ggsql doğrudan bir veritabanı backend’ine bağlanabiliyor ve istenirse in-memory DuckDB ile de çalışabiliyor
Görselleştirme sorgusu, görselleştirmenin her katmanı için bir SQL sorgusuna dönüştürülüyor ve dönen tablo render işlemi için kullanılıyor
Örneğin
VISUALISE page_views AS x FROM visits DRAW smoothgibi bir sorgu, veri üzerinde smoothing kernel hesaplayan SQL’e çevriliyor ve dönen noktalarla son çizgi grafik oluşturuluyorreader veritabanı bağlantısını ve her VT için uygun SQL dialect üretimini yönetiyor
Şu an alpha aşamasında duckdb, sqlite ve deneysel bir ODBC reader destekleniyor; geliştirme ise daha çok yerel dosya tabanlı DuckDB etrafında sürüyor
Temel fikir, görselleştirme sorgusunu birden fazla SQL sorgusuna çevirip bunları veritabanında çalıştırmak ve grafiği yalnızca dönen küçük sonuçlarla kurmak
Böylece çok fazla satır olsa bile histogram için gereken istatistikler SQL ile hesaplanabiliyor ve sadece çubuk yüksekliklerini çizmek için gereken birkaç nokta geri alınıyor
Varsayılan bağlantı in-memory DuckDB; CLI’de
--readerile disk dosyasına ya da bir ODBC URI’sine bağlanılabiliyorPositron’da bunu "Connections" paneliyle daha kolay yapılandırmak mümkün ve ggsql Jupyter kernel’ında magic SQL comment ile reader belirtilebiliyor
Dokümanlarda da bu tür harici araç entegrasyonları daha ayrıntılı anlatılacak
SQL bildirime dayalı bir veri işleme dili; veritabanı sorgulamakta sık kullanılıyor ama sadece veritabanına bağlı değil
Düz dosyalara, veri akışlarına ve program belleğindeki verilere de SQL uygulanabilir
Tersine, bir veritabanını SQL olmadan sorgulamak da mümkün
Yazıyı gözden geçirirken bunun neden gerekli olduğunu ve hangi sorunu çözdüğünü anlamaya çalıştım ama pek oturmadı
Acaba uzak bir SQL veritabanındaki tabloları doğrudan görselleştirip önce R data frame’e çekip sonra ggplot çalıştırma adımını ortadan kaldırmak mı istiyor diye düşündüm
Ama neden yeni bir SQL benzeri dil tasarlamak gerektiği de aklıma takıldı
Zaten R tarafında R ile SQL arasında çeviri yapan dbplyr var; bu durumda ggplot’un dbplyr tbl nesnelerini doğrudan destekleyip SQL üretmesini sağlamak daha doğrudan olmaz mıydı diye düşündüm
Ya da SQL zaten çok tanıdık bir dil olduğu için birçok kişinin bu sözdizimiyle ggplot benzeri işler yapmak isteyeceği mi varsayılıyor, onu da merak ettim
Dokümanların neredeyse tamamını okuduktan sonra bunun DuckDB ve SQLite backend’leri olan bağımsız bir görselleştirme uygulaması olduğunu, şu anda Vegalite ile render ettiğini ve ileride daha fazla backend ile renderer eklemeyi planladığını anladım
Aşağıdaki yorumda dendiği gibi, Python ya da R bilmeyen SQL odaklı kullanıcıların görselleştirme yapabilmesi için tasarlanmış bir araç gibi göründü
Tabii ki duyuru yazısının bunu biraz daha iyi anlatmış olmasını isterdim, buna katılıyorum
Benim deneyimimde analistler, bilim insanları ve mühendislerin ortak paylaştığı dil çoğu zaman SQL oluyor
Aynı şeyi R ile de yapmak mümkün ama gerçek projeler her zaman R ya da Python ile yazılmıyor; buna karşılık SQL veritabanları ve erişim motorları çoğunlukla zaten mevcut oluyor
Ayrıca ben marimo notebook içinde arka planda DuckDB ile SQL hücrelerini sık kullanıyorum; orada SQL’den doğrudan plot alabilmek çok kullanışlı olurdu
Son olarak Python plotting API’lerini ezberleyip doğal biçimde kullanmak bana hep oldukça zor gelmiştir
matplotlib ile basit bir scatterplot çizmek için bile çok fazla boilerplate gerekiyor; aynı sorgu dili içinde birleşik bir sözdizimi olması bu yüzden oldukça hoş görünüyor
İlginç olan nokta, belirli bir kütüphaneden çok arayüz olarak SQL ile GoG biçimselliğinin birleşimi
Asıl renderer veya runtime önemli olsa da daha çok uygulama ayrıntısı gibi geliyor
Tabii benzer satır sayısıyla R’de, Python’da ya da matplotlib ile de yapılamayacak bir şey değil
Ama bu tür ortamları kötü niyetli girdilere karşı güvenli biçimde sandbox etmek zor ve böyle bildirime dayalı bir dil olunca güvenilmeyen kullanıcılar ggsql girse bile yalnızca grafik üretilecek şekilde barındırmak daha kolay hale geliyor
Bu açıdan bakınca kesinlikle faydalı
Yine de çoğu genel kullanım için, sevdiğiniz bir LLM’e matplotlib kodu yazdırmak daha kolay bir seçenek gibi de görünüyor
Projenin kendisini destekliyorum ve kavramın SQL’e çok iyi oturduğu fikrine büyük ölçüde katılıyorum
R’de
WITHile veriyi hazırlayıp ardındanVISUALIZEekleme yapısı benim plot koduma da neredeyse çok benziyorAncak basit bir DSL olmanın dışında, bir DSL daha yaratmanın maliyetine değecek şekilde ggplot2’ye kıyasla ne avantaj sunduğunu hâlâ çok net göremiyorum
Benim görselleştirme için ggplot2’den uzaklaştığım neredeyse tek durum, hazır bir geom’un bulunduğu standart örneklerin dışına çıkınca standart dışı görselleştirmeler yapmanın oldukça zorlaşması
Biraz farklı bir şey yapmak istediğimde, ggplot dostu bir adapter’i zorlayarak üretmektense daha alt düzey çizim primitive’lerine inmek çoğu zaman çok daha kolay oldu
Sık kullanılan kısmi spesifikasyonları fonksiyonla sarmak bile, bunun
+ile mi birleştiğine yoksa|>ya da eski%>%gibi pipe’larla mı zincirlendiğine göre her zaman akıcı hissettirmiyorVe ggplot2 geliştirmesini durdurma gibi bir planımız da kesinlikle yok
ggsql kısmen yeni bir kullanıcı kitlesine ulaşma ve güçlü görselleştirmeleri yeni bağlamlara taşıma girişimi olan bir proje
Zamanının çoğunu R içinde geçiren biriyseniz, muhtemelen asıl hedef kullanıcı siz değilsinizdir
Yine de ggplot2’de olmayan epey ilginç yönleri var; bu yüzden keşfetmek keyifli olabilir
|>ile%>%aynı operatör değilGörece yeni base pipe olan
|>daha hızlı ama%>%içindeki nokta placeholder’ı gibi, değeri fonksiyonun ilk argümanı olmayan bir konuma aktarmayı desteklemiyorBu yüzden bazı durumlarda
%>%ifadeyi biraz daha temiz hale getirebiliyorBu gerçekten çok iyi görünüyor
Biz de GFQL adlı bir graph dataframe query language geliştirirken benzer bir sonuca vardık
Özellikle kod sandbox’ı olmadan kullanılabilecek LLM dostu bir arayüze görselleştirme ve analiz yığınında ihtiyaç vardı
Temel bir opencypher uzantısıyla bile oldukça zengin GPU görsel analiz pipeline’ları kurulabildiğini gördük; aynı nedenle tablo dünyasında SQL’e yönelmek de çok mantıklı görünüyor
GFQL tarafında örnek olarak veri yükleme, shape dönüşümü, algoritma tabanlı enrichment, görsel encoding ve birinci sınıf pipeline’ları ele alan overall pipelines ile, daha basit çağrı biçimindeki declarative visual encodings incelenebilir
Bu oldukça iyi görünüyor
Yalnız, sözdizimi desteği olmayan ortamlarda bile zarif biçimde degrade olan bir yaklaşım olsaydı keşke diye düşündüm
Ben de benzer yönde ama GoG’den çok daha basit bir SQL içi yaklaşım tasarlamıştım ve onda degrade mümkündü
Pek okunaklı bir sözdizimi değil ama sqlnb spec gibi bir şeydi
Mümkünse biraz daha somut açıklar mısın
Aynı çizgide bir araç olarak DuckDB tabanlı Shaper da akla geliyor
Bu da tüm dashboard’u SQL öncelikli bir yaklaşımla ele alıyor; getting started dokümanına bakınca yönelim benzer görünüyor
Öncelikle ggsql gerçekten harika görünüyor ve bir an önce denemek istiyorum
Ama dokümanlarda gözüme çarpan bir eksik vardı: çıktı formatı konusunda açıklama bulmak zordu
PDF üretilebiliyor mu, SVG ya da PNG mümkün mü, genişlik-yükseklik gibi çıktı ayarları nasıl yapılıyor pek belli değildi
Bulabildiğim en yakın ipucu Python kütüphane dokümanındaki
chart.display()vechart.save("chart.html")olduBu çıktı mevcut araçlarla interaktif grafik, SVG, PNG gibi biçimlerde render edilebiliyor; boyut gibi ayarlar da o araçların yapılandırmasına göre yapılıyor
ggsql Jupyter kernel’ı bu vegalite spec’i kullanarak Quarto belgeleri içinde grafik gösterebiliyor
İleride bu ara vegalite katmanını kullanmayan yüksek performanslı writerlar eklemeyi planlıyoruz; o zaman bu tür sorulara daha net yanıt verilebilir
Yakın ya da uzak gelecekte ggplot2 genişletme paketleriyle entegrasyon planı olup olmadığını merak ettim
Eğer daha önce değinildiyse kusura bakmayın
Bu projenin amacı ggplot2’nin yerini almak değil, farklı bir yaklaşım sunmak
ggplot2’nin yaptığı birçok şeyi yapabilir, hatta ggplot2’nin yapamadığı bazı şeyleri de yapabilir; ama uzun süre boyunca pek çok işte ggplot2’nin daha güçlü kalacağını düşünüyorum
Bu gerçekten çok havalı görünüyor; yakında denemeyi düşünüyorum
Bende en çok karşılık bulan şey grammar dokümanındaki anlatımdı
Zaten tanıdık olan SELECT ile veriyi seçip,
VISUALIZEya daVISUALISEile tablodan plot’a geçmek, ardındanDRAWile aesthetics eşlemesi yapmak veSCALE,FACET,LABELkatmanlarını sırayla eklemek, SQL’in yapısal düşünme biçimini aynen devam ettiriyor gibi geldiBen katmanlama yaklaşımını gerçekten çok beğendim
Temel grafiklerin ötesine geçmeye başlayınca başka SQL görselleştirme karma araçlarında sık gördüğüm sorunları bunun iyi çözdüğü izlenimini verdi