Lets-Plot: सांख्यिकीय डेटा के लिए ओपन सोर्स plotting लाइब्रेरी
(lets-plot.org)- Lets-Plot Grammar of Graphics सिद्धांत पर आधारित एक मल्टीप्लेटफ़ॉर्म plotting लाइब्रेरी है, जो Python और Kotlin में सांख्यिकीय डेटा visualization को सपोर्ट करती है
- यह Python और Kotlin के लिए अलग-अलग implementation प्रदान करती है, ताकि notebook environment से लेकर IDE और app development तक हर ecosystem के workflow के अनुसार इसका उपयोग किया जा सके
- Python में plots को notebook के अलावा PyCharm और IntelliJ IDEA के SciView में भी देखा जा सकता है
- Kotlin में यह Kotlin notebook से लेकर Compose-Multiplatform apps तक के visualization use cases को लक्ष्य बनाती है
- Geocoding, GeoDataFrame plotting, और tooltip·annotation customization जैसी सुविधाएँ देकर यह spatial data और interactive plot बनाने में भी उपयोगी है
Lets-Plot का अवलोकन
- Lets-Plot Grammar of Graphics सिद्धांत पर आधारित एक मल्टीप्लेटफ़ॉर्म plotting लाइब्रेरी है
- अगर आप ggplot2 और Grammar of Graphics को साथ में सीखना चाहते हैं, तो Hadley Wickham की “ggplot2: Elegant Graphics for Data Analysis” को संदर्भ सामग्री के रूप में सुझाया गया है
- शुरुआत करने की सामग्री और उदाहरण नीचे दिए गए रास्तों पर उपलब्ध हैं
समर्थित प्लेटफ़ॉर्म और प्रमुख सुविधाएँ
-
Python
- यह Grammar of Graphics for Python के रूप में उपलब्ध Python visualization लाइब्रेरी है
- इसे Python notebook में उपयोग किया जा सकता है
- plots को PyCharm और IntelliJ IDEA IDE के SciView में भी देखा जा सकता है
-
Kotlin
- यह Grammar of Graphics for Kotlin के रूप में उपलब्ध Kotlin मल्टीप्लेटफ़ॉर्म visualization लाइब्रेरी है
- यह Kotlin notebook से लेकर Compose-Multiplatform apps तक Kotlin ecosystem के use cases को लक्ष्य बनाती है
-
भू-स्थानिक visualization
-
tooltip और annotation
- plot layers के tooltip और annotation के लिए content, value format, और appearance को customize किया जा सकता है
1 टिप्पणियां
Hacker News की राय
बढ़िया है। लगता है यह ggplot2-स्टाइल graphics grammar पर आधारित है। उदाहरण यहां देखे जा सकते हैं: https://lets-plot.org/pages/charts.html
डेटा प्लॉट भी काफी अच्छे लगते हैं: https://lets-plot.org/pages/charts.html#discrete-icon-discre...
distribution plots भी ऐसे ही हैं: https://lets-plot.org/pages/charts.html#visualization-of-dis...
Python की ggplot2-स्टाइल plotting library
plotnineकी तुलना में यह प्रोजेक्ट कैसा है, यह जानने की उत्सुकता हैR के अलावा अन्य भाषाओं में ggplot family libraries की कमी यह है कि original में उपलब्ध शानदार add-on libraries[1] की बहुत बड़ी संख्या हाथ से निकल जाती है। निजी तौर पर, मैं Python में काफी data processing करने के बाद उसे R में export करता हूं, और सारे graphics वहीं बनाता हूं
लगता है statistics वाले लोग graphics को ज्यादा अहमियत देते हैं और उन्हें polished बनाने में ज्यादा समय लगाते हैं। साथ ही Copilot, सीखने के लिए बहुत सामग्री होने की वजह से, R-based ggplot semantics और options में सचमुच अच्छी मदद करता है। ggplot clone libraries के subtle differences के साथ भी ऐसा होगा या नहीं, यह साफ नहीं है
[1] https://youtu.be/7UjA_5gNvdw
पर्याप्त context दिया जाए तो शायद ये उपयोगी नतीजे दे देंगे
यह भी Python को graphics grammar interface देने वाले
plotnine[0] से काफी मिलता-जुलता लगता है। फिर भी मुझे ggplot पसंद है, इसलिए research में इसे इस्तेमाल करने के दिन का इंतजार हैअच्छा होगा अगर
ggthemes,scientificplots[1] और अन्य ggplot libraries को lets-plot पर port या reimplement किया जा सके0: https://plotnine.readthedocs.io/en/stable/
1: https://github.com/garrettj403/SciencePlots
समझ नहीं आता इसकी जरूरत क्यों है। क्या कोई एक और plotting library के लिए बेताब था?
Seaborn अच्छा है, लेकिन फिर भी matplotlib के ऊपर की leaky abstraction से जूझना पड़ता है, जिससे composition मुश्किल हो जाती है और interactivity भी मुश्किल से मिलती है। इसलिए मुझे ऐसी ही चीज चाहिए। मुझे तेज और native feel वाले अच्छे interactive charts चाहिए थे, इसलिए मैंने खुद बनाने की कोशिश भी की थी। Ggplot सिर्फ इस पर focus करने देता है कि आप क्या draw करना चाहते हैं और dataframe डालने देता है; यह भी वैसा ही दिखता है
इस graphics grammar तरीके से plots बनाने के लिए कोई Python-centric tutorial या guide है? या फिर ggplot2 की किताब पढ़कर R examples को Python में translate करना पड़ेगा?
https://vega.github.io/vega/docs/
सब कुछ Kotlin Multiplatform है और ऊपर से केवल एक पतला Python wrapper लगा है। काफी आश्चर्यजनक है
प्लॉट लाइब्रेरीज़ में सबसे बड़ी समस्या यह थी कि वे लाखों डेटा पॉइंट्स को तुरंत ठीक से हैंडल नहीं कर पाती थीं। पिछले डेटा साइंस प्रोजेक्ट में मैंने प्रमुख plotting libraries सब आज़माईं, लेकिन कुछ मिलियन पॉइंट्स से आगे कोई भी ठीक से काम नहीं कर रही थी
मैं ऐसा ग्राफ़ चाहता था जिसे real time में visualize और zoom in/out किया जा सके, लेकिन वही प्रोजेक्ट का कठिन हिस्सा बन गया। सिर्फ़ एक product ने दावा किया कि वह cloud GPU से इसे प्रोसेस कर सकता है, लेकिन उसके लिए paid subscription चाहिए था और डेटा cloud पर अपलोड करना पड़ता था। मुझे एक और library नहीं, बल्कि ऐसी library चाहिए थी जो सच में अच्छे से काम करे और plotting के लिए local GPU का इस्तेमाल कर सके
examples वाले हिस्से में नीचे जाएँ तो बहुत सारे points वाले plots दिखेंगे: https://wwwtyro.github.io/candygraph/examples/dist/
https://github.com/epezent/implot
Java: https://github.com/SpaiR/imgui-java
Rust भी है:
https://www.egui.rs/#Demo
Open Plot demo देखें। web पर शायद WASM में compile कर देना ठीक रहेगा। लगता है सिर्फ़ graph को WASM में बनाकर मौजूदा DOM में embed किया जा सकता है
https://github.com/holoviz/datashader Python ecosystem में एक अच्छा विकल्प है
ggplot2 data exploration के लिए बेहतरीन है। एक समय यह R की बेजोड़ ताकत थी
dashboards के लिए मुझे Apache ECharts ज़्यादा पसंद है:
https://github.com/ecomfe/awesome-echarts
वाकई शानदार। क्या यह Python में ggplot2 का reimplementation है?
pyggएक हल्की library है जो Python की ggplot grammar को R ggplot2 code में translate करती हैकमी यह है कि यह interactive नहीं है और R में चलती है; फ़ायदा यह है कि यह Hadley के R ggplot implementation को चलाती है
https://github.com/sirrice/pygg
मेरी नज़र में सीधे ggplot की नकल करना थोड़ा निराशाजनक है। ggplot visualization library design का अंतिम जवाब नहीं है
उदाहरण के लिए ggplot में scale की concept है, जो ठीक-ठीक function के बराबर है। यह library में बस बेकार का conceptual baggage जोड़ती है। इसे हटाना एक आसान improvement है
matplotlib में उसके करीब पहुँचने के लिए मुझे हाल में उसे काफ़ी इस्तेमाल करना पड़ा और GitHub Copilot तक चाहिए था