- Lets-Plot, Grammar of Graphics ilkelerine dayalı olarak Python ve Kotlin’de istatistiksel veri görselleştirmeyi destekleyen çok platformlu bir plotlama kütüphanesidir
- Python ve Kotlin için ayrı uygulamalar sunarak, not defteri ortamlarından IDE ve uygulama geliştirmeye kadar her ekosistemin iş akışına uygun şekilde kullanılabilir
- Python’da yalnızca not defterlerinde değil, PyCharm ve IntelliJ IDEA içindeki SciView’da da plotlar görüntülenebilir
- Kotlin’de ise Kotlin not defterlerinden Compose-Multiplatform uygulamalarına kadar uzanan görselleştirme kullanım senaryolarını hedefler
- Coğrafi kodlama, GeoDataFrame plotlama, tooltip ve açıklama özelleştirmeleri sunarak mekansal veri ve etkileşimli plotlar oluşturmada da kullanılabilir
Lets-Plot Genel Bakış
- Lets-Plot, Grammar of Graphics ilkelerine dayanan çok platformlu bir plotlama kütüphanesidir
- ggplot2 ve Grammar of Graphics’i birlikte öğrenmek isteyenler için Hadley Wickham’ın “ggplot2: Elegant Graphics for Data Analysis” kaynağı önerilmektedir
- Başlangıç materyalleri ve örnekler şu bağlantılarda sunulmaktadır
Desteklenen Platformlar ve Başlıca Özellikler
-
Python
- Python için Grammar of Graphics olarak sunulan bir Python görselleştirme kütüphanesidir
- Python not defterlerinde kullanılabilir
- Plotlar, PyCharm ve IntelliJ IDEA IDE’lerindeki SciView içinde de görüntülenebilir
-
Kotlin
- Kotlin için Grammar of Graphics olarak sunulan çok platformlu bir Kotlin görselleştirme kütüphanesidir
- Kotlin not defterlerinden Compose-Multiplatform uygulamalarına kadar Kotlin ekosistemindeki kullanım senaryolarını hedefler
-
Coğrafi mekansal görselleştirme
- Geocoding modülüyle mekansal nesneler bulunabilir
- Elinizde zaten bir
GeoDataFramevarsa doğrudan plotlanabilir
-
Tooltip ve açıklamalar
- Plot katmanlarındaki tooltip ve annotation için içerik, değer biçimi ve görünüm özelleştirilebilir
1 yorum
Hacker News yorumları
Harika görünüyor. ggplot2 tarzı grafik dilbilgisi temel alınmış gibi. Örnekler burada görülebilir: https://lets-plot.org/pages/charts.html
Veri grafikleri de oldukça iyi görünüyor: https://lets-plot.org/pages/charts.html#discrete-icon-discre...
Dağılım grafikleri için de aynı şey geçerli: https://lets-plot.org/pages/charts.html#visualization-of-dis...
Python’daki ggplot2 tarzı çizim kütüphanesi
plotnineile karşılaştırıldığında bu projenin nasıl olduğunu merak ediyorumR dışındaki dillerdeki ggplot türevi kütüphanelerin dezavantajı, orijinalde kullanılabilen çok sayıdaki harika eklenti kütüphanesini[1] kaybetmenizdir. Ben şahsen Python’da veriyi çok işleyip sonra R’ye aktarıyorum ve tüm grafikleri orada yapıyorum
İstatistik tarafındaki insanlar grafikleri daha önemli görüyor ve cilalamaya daha fazla zaman harcıyor gibi geliyor. Ayrıca Copilot, öğrenecek çok materyal olduğu için R tabanlı ggplot anlambilimi ve seçenekleri konusunda gerçekten iyi yardımcı oluyor. ggplot kopyası kütüphanelerdeki ince farklar için de aynı şey geçerli olur mu, emin değilim
[1] https://youtu.be/7UjA_5gNvdw
Yeterli bağlam verilirse muhtemelen kullanılabilir sonuçlar üretecektir
Bu da Python’a grafik dilbilgisi arayüzü sunan
plotnine[0] ile oldukça benzer görünüyor. Yine de ggplot’u sevdiğim için bunu araştırmalarımda kullanacağım günü dört gözle bekliyorumggthemes,scientificplots[1] ve diğer ggplot kütüphanelerinin lets-plot’a taşınabilmesi ya da yeniden uygulanabilmesi güzel olurdu0: https://plotnine.readthedocs.io/en/stable/
1: https://github.com/garrettj403/SciencePlots
Neden gerekli olduğunu anlamıyorum. Birileri gerçekten bir tane daha çizim kütüphanesi mi arıyordu?
Seaborn iyi, ama hâlâ matplotlib üzerindeki sızdıran soyutlamayla uğraşmak zorunda kalıyorsunuz; bu da birleştirmeyi zorlaştırıyor ve etkileşimsellik kazanmayı güçleştiriyor. O yüzden ben böyle bir şey istiyorum. Hızlı, doğal hissettiren iyi etkileşimli grafikler istiyorum ve bunu kendim yapmayı bile denedim. Ggplot, sadece ne çizmek istediğinize odaklanmanızı ve bir veri çerçevesi vermenizi sağlıyor; bu da öyle görünüyor
Bu grafik dilbilgisi yaklaşımıyla grafik oluşturmak için Python odaklı bir eğitim ya da rehber var mı? Yoksa ggplot2 kitabını okuyup R örneklerini Python’a mı aktarmak gerekiyor?
https://vega.github.io/vega/docs/
Tamamı Kotlin Multiplatform ve üstüne ince bir Python sarmalayıcısı eklenmiş. Oldukça şaşırtıcı
Grafik kütüphanelerindeki en büyük sorun, milyonlarca veri noktasını anında iyi işleyememeleriydi. Son veri bilimi projemde başlıca tüm çizim kütüphanelerini denedim ama birkaç milyon noktayı geçince düzgün çalışan hiçbir şey olmadı
Gerçek zamanlı görselleştirip yakınlaştırıp uzaklaştırabileceğim grafikler istiyordum ve bu, projenin zor kısmı oldu. Yalnızca bir ürün bunun cloud GPU ile yapılabildiğini iddia ediyordu ama ücretli abonelik gerekiyordu ve verileri cloud'a yüklemek zorundaydınız. Bir kütüphane daha değil, gerçekten iyi çalışan ve çizim için yerel GPU'yu kullanabilen bir kütüphane istiyorum
Örnekler kısmına inerseniz çok noktalı grafikler var: https://wwwtyro.github.io/candygraph/examples/dist/
https://github.com/epezent/implot
Java: https://github.com/SpaiR/imgui-java
Rust tarafında da var:
https://www.egui.rs/#Demo
Open Plot demosuna bakabilirsiniz. Web'de ise WASM'a derlemek işe yarayabilir. Sadece grafiği WASM ile oluşturup mevcut DOM'a gömmek mümkün görünüyor
https://github.com/holoviz/datashader Python ekosisteminde fena olmayan bir seçenek
ggplot2 veri keşfi için harika. Bir zamanlar R'nin tartışmasız en büyük avantajıydı
Dashboard'lar için ise Apache ECharts'ı daha çok tercih ediyorum:
https://github.com/ecomfe/awesome-echarts
Gerçekten harika. Bu, Python'da ggplot2'nin yeniden uygulanmış hali mi?
pygg, Python'daki ggplot sözdizimini R ggplot2 koduna çeviren hafif bir kütüphaneDezavantajı etkileşimli olmaması ve R üzerinde çalışması; avantajı ise Hadley'in R ggplot uygulamasını çalıştırması
https://github.com/sirrice/pygg
Bana göre doğrudan ggplot'u kopyalamış olmaları biraz hayal kırıklığı yaratıyor. ggplot, görselleştirme kütüphanesi tasarımının nihai cevabı değil
Örneğin ggplot'ta tam anlamıyla fonksiyona karşılık gelen bir scale kavramı var. Bu, kütüphaneye gereksiz kavramsal yük ekliyor. Bunu kaldırmak kolay bir iyileştirme olur
matplotlib'te ise buna yaklaşmak için son dönemde epey kullanmış olmak ve hatta GitHub Copilot'a sahip olmak gerekiyor