जिनके पास R में काम करने का अनुभव है, उन्होंने संभवतः Shiny पैकेज के बारे में सुना होगा, जो आपको इंटरैक्टिव वेब एप्लिकेशन बनाने देता है। R Shiny 2012 में जारी किया गया था, और यह समझ में आते ही कि यह आसान पैकेज वैज्ञानिकों और विश्लेषकों को अधिक इंटरैक्टिव मॉडल और डैशबोर्ड बनाने की सुविधा देता है, इसकी मांग तेजी से बढ़ी।
2023 में, Python के लिए Shiny अल्फा से बाहर आया, जो Python भाषा के लिए इसी तरह का, रिएक्टिव फ्रेमवर्क प्रदान करता है। Shiny अपनी सरलता और प्रभावशीलता के लिए जाना जाता है, जो बिना व्यापक वेब डेवलपमेंट कौशल के वेब-आधारित डैशबोर्ड और एप्लिकेशन बनाने में सक्षम बनाता है।
Shiny क्या है?
Shiny R के लिए एक ओपन-सोर्स वेब एप्लिकेशन फ्रेमवर्क है और हालिया विकास के साथ, Python के लिए भी। यह डेटा पेशेवरों को अपने विश्लेषणों को इंटरैक्टिव वेब एप्लिकेशन में बदलने में सक्षम बनाता है। Shiny का मूल रिएक्टिव प्रोग्रामिंग की अवधारणा पर आधारित है, जहां इनपुट्स (जैसे स्लाइडर या बटन) में बदलाव आउटपुट्स (जैसे प्लॉट या टेबल) में स्वतः अपडेट ट्रिगर करते हैं।
वेब-आधारित एप्लिकेशन बनाने के लिए Shiny फ्रेमवर्क के कई लाभ हैं। Shiny रिएक्टिव प्रोग्रामिंग का लाभ उठाता है, जिससे आप ऐसे एप्लिकेशन बना सकते हैं जो उपयोगकर्ता इनपुट्स के प्रति गतिशील रूप से प्रतिक्रिया दें, और अधिक आकर्षक व व्यक्तिगत अनुभव बनाएं। Shiny की एक उपयोगकर्ता-अनुकूल लाइब्रेरी और व्यापक प्रलेखन है, जिससे बुनियादी प्रोग्रामिंग ज्ञान रखने वाले भी इंटरैक्टिव और आकर्षक एप्लिकेशन बना सकते हैं। Python प्रेमियों के लिए, Shiny अब Python के समृद्ध डेटा साइंस इकोसिस्टम और Shiny की वेब डेवलपमेंट क्षमताओं के बीच एक पुल प्रदान करता है।
यहां कुछ उदाहरण हैं जहां Shiny फ्रेमवर्क उपयोगी साबित होगा:
इंटरैक्टिव डैशबोर्ड: Shiny ऐसे इंटरैक्टिव डैशबोर्ड बनाने के लिए उपयुक्त है जो उपयोगकर्ताओं को वास्तविक समय में डेटा एक्सप्लोर और विज़ुअलाइज़ करने दें। आप शानदार डैशबोर्ड डिजाइन करने के लिए ये सुझाव उपयोग कर सकते हैं।
डेटा अन्वेषण: विश्लेषक Shiny का उपयोग ऐसे एप्लिकेशन बनाने के लिए कर सकते हैं जो उपयोगकर्ताओं को डेटा सेट्स को इंटरैक्टिव रूप से एक्सप्लोर करने दें, और चलते-चलते पैरामीटर व विज़ुअलाइज़ेशन समायोजित करें।
निर्णय सहायता प्रणालियां: Shiny का उपयोग निर्णय सहायता प्रणालियां विकसित करने में किया जा सकता है, जो गतिशील अंतर्दृष्टि प्रदान करके डेटा-चालित निर्णय लेने में सहूलियत देती हैं।
शैक्षिक उपकरण: Shiny शैक्षिक संदर्भ में मूल्यवान है, जिससे इंटरैक्टिव शिक्षण सामग्री और डेमोंस्ट्रेशन बनाए जा सकते हैं।
नोट: यह समझना महत्वपूर्ण है कि R के लिए Shiny और Python के लिए Shiny अलग हैं। यद्यपि इनमें अंतर्निहित अवधारणाएं समान हैं, लेकिन सिंटैक्स और पारिभाषिक शब्दावली परस्पर विनिमेय नहीं हैं। यदि आप R के लिए Shiny का उपयोग करना जानते हैं, तो Python के लिए Shiny सीखने में आपको बढ़त होगी, फिर भी आपको Python के अनुरूप किए गए अंतर सीखने होंगे।
अन्य वेब एप्लिकेशन फ्रेमवर्क्स की तुलना में Shiny
जब डेटा साइंस के लिए वेब एप्लिकेशन विकास पर विचार किया जाता है, तो यह समझना उपयोगी है कि Shiny अन्य फ्रेमवर्क्स की तुलना में कैसा है।
Shiny सरलता और बहुमुखी प्रतिभा का एक अनूठा संयोजन प्रदान करता है। हालांकि, Python संस्करण अन्य फ्रेमवर्क्स की तुलना में अपेक्षाकृत नया है। Shiny को इस तरह डिजाइन किया गया है कि Python कोडिंग ज्ञान रखने वाला कोई भी व्यक्ति वेब एप्लिकेशन विकसित कर सके।
अपनी आसानी के साथ-साथ, इसे निर्बाध स्केलिंग के लिए डिजाइन किया गया है, जो कैशिंग और चयनात्मक रिएक्टिविटी का उपयोग करके इसके रिएक्टिव फ्रेमवर्क को कुशल रखता है। यह इसे कुछ अन्य वेब डिजाइन फ्रेमवर्क्स पर बढ़त देता है। इसका घोषणात्मक सिंटैक्स और रिएक्टिव प्रोग्रामिंग मॉडल डेटा विश्लेषकों के लिए भी सुलभ बनाता है, जिससे वे व्यापक वेब डेवलपमेंट विशेषज्ञता के बिना इंटरैक्टिव एप्लिकेशन बना सकें।
इसके विपरीत, Dash और Streamlit जैसे अन्य फ्रेमवर्क अलग ताकतें प्रदान करते हैं। Dash Pythonic सिंटैक्स का उपयोग करता है और त्वरित विकास पर जोर देता है। Streamlit स्वचालित रेंडरिंग के साथ तेज प्रोटोटाइपिंग में उत्कृष्ट है, लेकिन जब इनपुट बदलते हैं तो यह पूरे प्रोग्राम को फिर से चलाता है, जिससे एप्लिकेशन के स्केल होने पर अकार्यकुशलता हो सकती है। Flask और Django सामान्य-उद्देश्य वेब फ्रेमवर्क हैं जो लचीलापन और नियंत्रण प्रदान करते हैं, लेकिन अक्सर अधिक वेब डेवलपमेंट विशेषज्ञता की आवश्यकता होती है। यदि आप इन्हें सीखने में रुचि रखते हैं, तो आप DataCamp का Django ट्यूटोरियल पढ़ सकते हैं।
कोड-आधारित वेब डेवलपमेंट प्लेटफॉर्म्स के अलावा, डेटा विश्लेषक समान डैशबोर्ड-निर्माण उद्देश्यों के लिए Tableau और Power BI का भी उपयोग करते हैं। ये डेटा विज़ुअलाइज़ेशन प्लेटफॉर्म हैं जो शक्तिशाली टूल प्रदान करते हैं, लेकिन इनके साथ लाइसेंसिंग लागतें आती हैं। इन प्रोग्रामों में शुद्ध कोड की तुलना में विश्लेषण सुविधाएं सीमित होती हैं और अधिक जटिल मॉडलिंग और विश्लेषण आमतौर पर कहीं और पूरे करने पड़ते हैं। आप DataCamp पर Power BI के बारे में और जान सकते हैं।
किसी दिए गए डेटा साइंस एप्लिकेशन के लिए सबसे उपयुक्त फ्रेमवर्क चुनते समय परियोजना की आवश्यकताओं, भाषा वरीयताओं और विशेष सुविधाओं की जरूरतों पर विचार करना आवश्यक है। जबकि अन्य फ्रेमवर्क अपनी-अपनी खूबियां लाते हैं, Shiny की सरलता और लचीलापन, साथ ही Python इंटीग्रेशन का अनूठा मेल, इसे उन सभी के लिए एक आकर्षक विकल्प बनाता है जो अपने डेटा साइंस प्रोजेक्ट्स को ऊंचाई देना चाहते हैं।
फ्रेमवर्क
मुख्य विशेषताएं
भाषा समर्थन
सीखने की अवस्था
उपयोग परिदृश्य
Shiny
सरलता और बहुमुखी प्रतिभा
R, Python
कम
इंटरैक्टिव एप्लिकेशन और विज़ुअलाइज़ेशन
Dash
Pythonic सिंटैक्स
Python
मध्यम
हल्के वेब ऐप्स का त्वरित विकास
Streamlit
स्वचालित रेंडरिंग के साथ तेज प्रोटोटाइपिंग
Python
कम
डेटा ऐप्स के लिए त्वरित प्रोटोटाइपिंग
Flask
सामान्य-उद्देश्य वेब फ्रेमवर्क
Python
मध्यम से उच्च
पूर्ण-सेवा वेब ऐप्स
Django
हाई-लेवल Python वेब फ्रेमवर्क
Python
मध्यम से उच्च
स्केलेबल वेब एप्लिकेशन और सेवाएं
Tableau/Power BI
डेटा विज़ुअलाइज़ेशन प्लेटफॉर्म
लागू नहीं
कम
बिजनेस इंटेलिजेंस विज़ुअलाइज़ेशन
डेवलपमेंट एनवायरनमेंट सेट करना
Python के लिए Shiny की एक बड़ी खासियत यह है कि इसमें एक वेब एडिटर है जहाँ आप बिना कुछ डाउनलोड या इंस्टॉल किए अपना ऐप बना सकते हैं। यह वेब एडिटर कई ऐप्स और फंक्शनैलिटी के उदाहरणों के साथ आता है, जिनका उपयोग आप शुरुआत करने और अपने नए Shiny एप्लिकेशन को आज़माने के लिए कर सकते हैं।
हालाँकि, आपके विकास के किसी चरण में आप अपने स्थानीय डिवाइस पर Shiny चलाना चाहेंगे। यह खंड Python, Shiny और उनके संबंधित निर्भरताओं की स्थापना, साथ ही आवश्यक कॉन्फ़िगरेशन के माध्यम से मार्गदर्शन करेगा ताकि आपका लोकल एनवायरनमेंट सुचारू रूप से चल सके।
Python की स्थापना
ऑफ़लाइन Shiny के साथ काम शुरू करने के लिए, आपके कंप्यूटर पर Python इंस्टॉल होना चाहिए। यदि आपने अभी तक Python इंस्टॉल नहीं किया है, तो आधिकारिक Python वेबसाइट python.org पर जाएँ और अपने ऑपरेटिंग सिस्टम के लिए Python का नवीनतम संस्करण डाउनलोड करें। यदि आपने पहले से Python इंस्टॉल कर रखा है, तो Shiny को सही ढंग से चलाने के लिए नवीनतम संस्करण में अपडेट करने की सलाह देता/देती हूँ।
डाउनलोड किए गए इंस्टॉलर को चलाएँ और इंस्टॉलेशन प्रक्रिया के दौरान "Add Python to PATH" वाला बॉक्स चुनें। इससे कमांड लाइन से Python चलाना आसान हो जाता है। एक कमांड प्रॉम्प्ट या टर्मिनल खोलें और सत्यापित करने के लिए python --version टाइप करें कि Python सफलतापूर्वक इंस्टॉल हो गया है। आपको संस्करण संख्या दिखाई देनी चाहिए। सुविधा के लिए आप एक Integrated Development Environment (IDE) भी इंस्टॉल करना चुन सकते हैं।
Shiny की स्थापना
एक बार Python सेट हो जाने पर, आप Shiny इंस्टॉल कर सकते हैं। जब तक आपके पास Python का नवीनतम संस्करण है, आपको कमांड प्रॉम्प्ट या टर्मिनल खोलकर pip का उपयोग करते हुए Python के लिए Shiny लाइब्रेरी इंस्टॉल करने के लिए निम्न कमांड चलाने में सक्षम होना चाहिए:
Shiny में आपके सिस्टम कॉन्फ़िगरेशन के आधार पर अतिरिक्त निर्भरताएँ हो सकती हैं। सुनिश्चित करें कि ये निर्भरताएँ इंस्टॉल हैं, इसके लिए Shiny डॉक्स में दिए निर्देशों का पालन करें।
डेवलपमेंट एनवायरनमेंट का कॉन्फ़िगरेशन
अब जब आपने Python और Shiny इंस्टॉल कर लिए हैं, तो तीन और विषय हैं जिन पर आपको ध्यान देना है।
IDE: यदि आप VS Code जैसा IDE उपयोग कर रहे हैं, तो आप IDE के भीतर Shiny आउटपुट्स रेंडर करने के लिए एक एक्सटेंशन इंस्टॉल करना चुन सकते हैं।
वर्ज़न कंट्रोल: Git जैसे वर्ज़न कंट्रोल सिस्टम का उपयोग करने पर विचार करें ताकि आप अपने कोड में हुए बदलावों को ट्रैक कर सकें। अपने प्रोजेक्ट फ़ोल्डर में एक Git रिपॉज़िटरी इनिशियलाइज़ करें ताकि आप अपने Shiny एप्लिकेशनों को आसानी से मैनेज और सहयोगपूर्वक विकसित कर सकें।
कोड संरचना: अपने प्रोजेक्ट की संरचना व्यवस्थित करें। अपने Shiny एप्लिकेशनों, डेटा सेट्स, और किसी भी अतिरिक्त संसाधनों के लिए अलग-अलग फ़ोल्डर बनाएँ। यह एक स्वच्छ और संगठित कोडबेस बनाए रखने में मदद करता है, जो किसी भी कोडिंग प्रोजेक्ट के लिए सर्वोत्तम अभ्यास है।
अब जब आपका डेवलपमेंट एनवायरनमेंट सेट और कॉन्फ़िगर हो चुका है, तो आप Python के लिए Shiny के साथ इंटरैक्टिव वेब एप्लिकेशन बनाना शुरू करने के लिए तैयार हैं।
एक बुनियादी Shiny ऐप बनाना
Shiny ऐप की संरचना को समझना
एक Shiny ऐप दो मुख्य घटकों से बनता है: यूज़र इंटरफ़ेस (UI) और सर्वर लॉजिक।
UI यह परिभाषित करता है कि ऐप कैसा दिखता है और उपयोगकर्ता इंटरैक्शन के लिए कौन से तत्व उपलब्ध हैं। उपयोगकर्ता जो कुछ देख सकता है या जिसके साथ इंटरैक्ट कर सकता है, वह सब UI का हिस्सा है, जिनमें स्लाइडर, बटन और प्लॉट जैसे तत्व शामिल हैं।
UI उन फ़ंक्शनों का उपयोग करके बनाया जाता है जो "ui." से शुरू होते हैं, जैसे ui.input_numeric, ui.input_slider, और ui.output_text। इन फ़ंक्शनों को एक पेज फ़ंक्शन में रैप किया जाता है, आमतौर पर ui.page_fluid, जो पेज के बेसिक लेआउट का वर्णन करता है।
सर्वर लॉजिक यह परिभाषित करता है कि ऐप कैसे व्यवहार करता है और उपयोगकर्ता इनपुट्स का जवाब कैसे देता है। इसमें वे फ़ंक्शन शामिल होते हैं जो UI से उपयोगकर्ता इनपुट लेते हैं, उन्हें प्रोसेस करते हैं, और तदनुसार आउटपुट तत्वों को अपडेट करते हैं। सर्वर लॉजिक server फ़ंक्शन का उपयोग करके बनाया जाता है और इनपुट्स व आउटपुट्स को संभालने के लिए रिएक्टिव एक्सप्रेशन्स शामिल करता है।
UI और सर्वर लॉजिक को परिभाषित करने के बाद, हम उन्हें एक पूर्ण एप्लिकेशन में जोड़ते हैं, जिसका नाम "app" होना चाहिए।
यह उदाहरण एक स्लाइडर से उपयोगकर्ता इनपुट लेता है और इसका उपयोग एक गणना करने में करता है, जो स्लाइडर के नीचे दिए गए टेक्स्ट बॉक्स में प्रदर्शित होती है। यह बहुत सरल उदाहरण VS Code में लोकल होस्ट पर एक साधारण ब्राउज़र में चल रहा है।
जैसा कि आप इस सरल डेमो से देख सकते हैं, Shiny का जादू इसकी इंटरएक्टिविटी में है। Shiny की इंटरएक्टिविटी का इंजन इसका रिएक्टिव प्रोग्रामिंग मॉडल है। Shiny में, हम रिएक्टिव एक्सप्रेशन्स परिभाषित करते हैं ताकि इनपुट्स और आउटपुट्स के बीच निर्भरता की एक शृंखला बन सके। जब कोई इनपुट बदलता है, तो सभी संबंधित रिएक्टिव एक्सप्रेशन्स और आउटपुट्स अपने-आप अपडेट हो जाते हैं। यही रिएक्टिविटी Shiny के केंद्र में है। आप Shiny की रिएक्टिविटी के और विवरण यहाँ पढ़ सकते हैं।
कुछ प्रमुख तत्व हैं जो इस रिएक्टिविटी को संभव बनाते हैं।
पहला है रिएक्टिव कैलकुलेशन, या reactive.Calc। यह किसी इनपुट पर आधारित गणना है। यह गणना तब तक अपने लौटाए गए मान को कैश करती है जब तक इनपुट नहीं बदलता; इनपुट बदलते ही यह नए इनपुट के साथ फिर चलती है। इससे आपका ऐप उपयोगकर्ता इनपुट्स पर कुशलतापूर्वक प्रतिक्रिया दे पाता है। रिएक्टिव कैलकुलेशन @reactive.Calc डेकोरेटर का उपयोग करते हैं, जैसा कि नीचे दिए उदाहरण में है।
@reactive.Calcdefdouble_number():returninput.number()*2संचालित द्वारा
एक अन्य रिएक्टिव तत्व है रिएक्टिव इफेक्ट, या reactive.Effect। रिएक्टिव इफेक्ट चलने पर कोई मान वापस नहीं करता। इसके बजाय, यह कोई इफेक्ट ट्रिगर करता है, जैसे किसी वैरिएबल को संशोधित करना या फ़ाइल सेव करना। यह भी इनपुट बदलने पर फिर चलाया जाता है। सबसे सामान्य reactive.Effect @output डेकोरेटर है, जो परिणाम के साथ एक स्ट्रिंग को मैसेज क्यू में जोड़ता है, जैसा कि नीचे दिए उदाहरण में है।
@output@render.textdeftxt():returnf"The value of x is {input.x()}"संचालित द्वारा
कभी-कभी, आप नहीं चाहेंगे कि आपके ऐप की रिएक्टिविटी इतनी तत्काल हो। उदाहरण के लिए, यदि आपके पास गणनात्मक रूप से महंगा मॉडल है, तो आप चाहते होंगे कि मॉडल को फिर चलाने से पहले कई पैरामीटर्स अपडेट हो जाएँ। ऐसे में, reactive.event() या reactive.isolate() के साथ अपने ऐप की रिएक्टिविटी सीमित करने के विकल्प मिलते हैं।
अपने Shiny ऐप में इंटरएक्टिविटी जोड़ना
जब आपको अधिक जटिल ऐप की जरूरत हो
इस रिएक्टिविटी लॉजिक के साथ, Python के लिए Shiny आपकी जरूरत के अनुसार ऐप्स को जितना सरल या जटिल चाहें बना सकता है। आप रेडियो बटन, चेक बॉक्स, स्लाइडर, टेक्स्ट इनपुट बॉक्स, ग्राफ़, मानचित्र, और बहुत कुछ जोड़ सकते हैं! यहाँ Shiny डॉक्स से थोड़ा अधिक जटिल उदाहरण है।
इस उदाहरण में, हमने कुछ यादृच्छिक डेटा का हीट मैप बनाया। उपयोगकर्ता जिस शैली का हीटमैप देखना चाहता है, उसके लिए एक रेडियो बटन विकल्प है, और स्लाइडर फ़ंक्शन हीटमैप पर रंगों की रेंज को बदलता है। Posit (वह कंपनी जिसने Shiny बनाया) अपनी वेबसाइट पर कई और उदाहरण प्रदान करती है, जिनमें यह मज़ेदार Wordle क्लोन भी शामिल है।
जहाँ इस तरह की इंटरएक्टिविटी मज़ेदार है, वहीं इसके कई उपयोगी अनुप्रयोग भी हैं। आप ऐसा मॉडल डिजाइन कर सकते हैं जो लवणता और तापमान जैसे पर्यावरणीय कारकों को लेकर शैवाल प्रस्फुटन की भविष्यवाणी करे। क्षेत्र में मौजूद शोधकर्ता आपके Shiny ऐप में मौजूदा मान दर्ज कर सकता है, और ऐप शोधकर्ता को वास्तविक समय की भविष्यवाणी देगा।
आप ऐसा मॉडल डिजाइन कर सकते हैं जो यदि कुछ शर्तें पूरी हों तो वार्षिक आय का प्रक्षेपण दिखाए। इसके बाद, प्रबंधक विभिन्न परिदृश्यों को आज़माने के लिए अलग-अलग बिक्री संख्याएँ दर्ज करके या कौन-से उत्पाद वे पेश करते हैं उसके लिए चेक बॉक्स चुनकर आपके ऐप का उपयोग कर सकते हैं, और उनकी आँखों के सामने अनुमानित परिणाम अपडेट होते देखेंगे।
कई उद्योगों में उपयोग के मामले असंख्य हैं।
इनपुट्स और आउटपुट्स के प्रकार
Shiny विभिन्न डेटा विज़ुअलाइज़ेशन और इंटरैक्शन आवश्यकताओं को पूरा करने के लिए कई तरह के इनपुट और आउटपुट विकल्प प्रदान करता है। यहाँ Python के लिए Shiny में उपलब्ध सामान्य इनपुट्स और आउटपुट्स की एक सरल तालिका दी गई है।
इनपुट्स
यह क्या करता है?
एक्शन बटन इनपुट
उपयोगकर्ता के चयन के लिए एक बटन प्रदान करता है।
एक्शन लिंक इनपुट
उपयोगकर्ता को एक लिंक पर क्लिक करने देता है।
टेक्स्ट इनपुट
सरल टेक्स्ट की एक पंक्ति के लिए टेक्स्ट बॉक्स प्रदान करता है।
न्यूमेरिक इनपुट
ऊपर और नीचे तीरों के साथ एक संख्यात्मक इनपुट बॉक्स प्रदान करता है।
स्लाइडर इनपुट
एक संख्यात्मक स्लाइडर बनाता है।
चेकबॉक्स इनपुट
True/False अनुप्रयोगों के लिए एक एकल चेकबॉक्स बनाता है।
स्विच इनपुट
एक एकल ऑन/ऑफ स्विच बनाता है।
चेकबॉक्स समूह इनपुट
कई विकल्पों के लिए कई चेकबॉक्स बनाता है।
सेलेक्ट इनपुट
विकल्पों का एक ड्रॉपडाउन मेनू प्रदान करता है।
रेडियो बटन इनपुट
रेडियो बटन विकल्प बनाता है, जिससे केवल एक विकल्प चुनना संभव होता है।
टेक्स्ट एरिया इनपुट
लंबे टेक्स्ट इनपुट के लिए आकार बदलने योग्य विंडो वाला बड़ा टेक्स्ट बॉक्स प्रदान करता है।
डेट इनपुट
उपयोगकर्ताओं के लिए तारीख चुनने हेतु कैलेंडर वाला डेट इनपुट बॉक्स बनाता है।
डेट रेंज इनपुट
मूलतः दो युग्मित डेट इनपुट बॉक्स, जो एक रेंज इनपुट करने की अनुमति देते हैं।
पासवर्ड इनपुट
ऐसा टेक्स्ट बॉक्स बनाता है जो इनपुट टेक्स्ट को छुपाता है।
———————————————————————————————————————————
आउटपुट्स
यह क्या करता है?
टेक्स्ट आउटपुट
सादा HTML में टेक्स्ट लिखता है।
वर्बेटिम टेक्स्ट आउटपुट
मोनोस्पेस्ड कोड ब्लॉक के भीतर टेक्स्ट लिखता है।
UI आउटपुट
उपयोगकर्ता इनपुट्स के आधार पर अधिक डायनेमिक UI की अनुमति देता है।
प्लॉट आउटपुट
matplotlib जैसी सामान्य Python लाइब्रेरीज़ का उपयोग कर प्लॉट बनाता है।
टेबल आउटपुट
कॉलम हेडिंग्स के साथ एक सादा टेबल बनाता है।
डेटा फ्रेम / ग्रिड आउटपुट
फ़िल्टर्स, ग्रिड लाइन्स और रो लिमिट्स के साथ एक कस्टमाइज़ेबल टेबल बनाता है।
Shiny कंपोनेंट्स की पूरी सूची के लिए, यह पेज देखें।
Python के लिए Shiny में यूज़र इंटरफ़ेस को कस्टमाइज़ करना
लेआउट और थीम्स
Shiny पेज फ़ंक्शन का उपयोग करते हुए विभिन्न लेआउट्स के माध्यम से यूज़र इंटरफ़ेस को कस्टमाइज़ करने में लचीलापन प्रदान करता है। सबसे आमतौर पर उपयोग किया जाने वाला पेज फ़ंक्शन page_fluid() है, जो अलग-अलग स्क्रीन आकारों के अनुरूप होने वाला रिस्पॉन्सिव डिज़ाइन देता है। विशिष्ट डिज़ाइन आवश्यकताओं वाले एप्लिकेशन के लिए उपयुक्त फिक्स्ड-विथ लेआउट page_fixed() पेज फ़ंक्शन का उपयोग करके हासिल किया जा सकता है।
Shiny वेब-आधारित ऐप्स बनाने के लिए HTML का उपयोग करता है। इसका मतलब है कि आप CSS थीम्स का उपयोग करके अपने ऐप को स्टाइल कर सकते हैं। कस्टम CSS स्टाइलिंग जोड़ने से आप अपने Shiny ऐप की उपस्थिति को अपनी सौंदर्य वरीयताओं या कॉर्पोरेट ब्रांडिंग से मिलान करने के लिए अनुकूलित कर सकते हैं।
कस्टम विजेट्स और एक्सटेंशंस का कार्यान्वयन
Shiny ipywidgets को सपोर्ट करता है जो इंटरैक्टिव प्लॉट्स, मानचित्र, 3D-विज़ुअलाइज़ेशन और मीडिया स्ट्रीमिंग की विविधता के लिए उपयोगी हैं। इसमें अन्य Python विजेट्स के लिए भी कुछ फंक्शनैलिटी है जिन्हें HTML फ़ाइल के रूप में सेव किया जा सकता है। कस्टम विजेट्स को शामिल करके, आप अपने Shiny ऐप को विशिष्ट उपयोग मामलों के अनुरूप ढाल सकते हैं और अधिक कस्टमाइज़्ड यूज़र अनुभव बना सकते हैं।
अपने Python के लिए Shiny ऐप को डिप्लॉय करना
विभिन्न डिप्लॉयमेंट विकल्पों की व्याख्या
एक बार जब आप एक आकर्षक Shiny ऐप बना लेते हैं, तो आप संभवतः इसे वेब पर डिप्लॉय करके व्यापक दर्शकों, अपने पोर्टफोलियो या क्लाइंट के साथ साझा करना चाहेंगे। Shiny अलग-अलग जरूरतों के अनुरूप कई डिप्लॉयमेंट विकल्पों का समर्थन करता है।
स्थानीय डिप्लॉयमेंट: आप अपने Shiny ऐप को एक लोकल सर्वर पर डिप्लॉय कर सकते हैं, जिससे यह आपके संगठन के भीतर या किसी विशेष उपयोगकर्ता समूह के लिए सुलभ हो जाए।
क्लाउड-आधारित प्लेटफॉर्म्स: क्लाउड प्लेटफॉर्म Shiny ऐप्स को डिप्लॉय करने के लिए स्केलेबल और सुलभ समाधान प्रदान करते हैं। लोकप्रिय विकल्पों में शामिल हैं:
Shinyapps.io: Posit का अपना प्लेटफॉर्म, जिसे विशेष रूप से Shiny एप्लिकेशनों की होस्टिंग के लिए डिजाइन किया गया है।
Heroku: एक क्लाउड प्लेटफॉर्म जो Shiny ऐप डिप्लॉयमेंट का समर्थन करता है।
AWS, Azure, और Google Cloud: प्रमुख क्लाउड प्रदाता जो वर्चुअल मशीनों या कंटेनरों पर Shiny ऐप्स डिप्लॉय करने की अनुमति देते हैं।
ShinyLive: Shiny एक नया तरीका प्रदान करता है, जिससे वेब ब्राउज़र के भीतर ही Shiny एप्लिकेशन चलाए जा सकते हैं, बिना अलग सर्वर पर Python चलाए। यह वेबअसेंबली और pyodide को जोड़ता है ताकि आपके कंप्यूटर पर Python या Shiny इंस्टॉल किए बिना Shiny एप्लिकेशन चल सकें। इस प्लेटफॉर्म में उपलब्ध Python पैकेज सीमित हैं और यह अन्य प्लेटफॉर्म्स जितना सुरक्षित नहीं हो सकता, लेकिन गैर-संवेदनशील कोड को जल्दी साझा करने का यह अच्छा तरीका है।
निष्कर्ष
Python के लिए Shiny वेब ऐप डेवलपमेंट क्षेत्र में एक रोमांचक नया खिलाड़ी है। इसका उपयोग वेब डेवलपमेंट सीखने में बड़े समय निवेश के बिना आपके डेटा प्रोजेक्ट को महत्वपूर्ण रूप से उन्नत कर सकता है। यदि आप R के लिए Shiny आज़माने में रुचि रखते हैं, तो DataCamp का यह Shiny मूलभूत कोर्स और R Shiny के साथ डैशबोर्ड बनाने पर यह कोर्स देखें। एक बार जब आप बुनियादी बातें सीख लें, तो Shiny केस स्टडी के साथ अपने नए कौशल का अभ्यास करें!
मैं एक पीएचडी हूँ, जिसके पास जैविक अनुसंधान परिवेश में डेटा के साथ काम करने का 13 वर्षों का अनुभव है। मैं Python, MATLAB और R सहित कई प्रोग्रामिंग भाषाओं में सॉफ्टवेयर बनाती/बनाता हूँ। मुझे सीखने के प्रति अपने प्रेम को दुनिया के साथ साझा करने का जुनून है।
Shiny is an R package that makes it easy to build interactive web apps directly in R, allowing your team to explore your data as dashboards or visualizations.
जानें कि Shiny, एक लोकप्रिय R पैकेज, का उपयोग करके अत्यंत इंटरैक्टिव वेब एप्लिकेशन कैसे बनाएँ और अपने विश्लेषणों को डैशबोर्ड और विज़ुअलाइज़ेशन के रूप में साझा करें।
Shiny का परिचय और इसके लाभ
जिनके पास R में काम करने का अनुभव है, उन्होंने संभवतः Shiny पैकेज के बारे में सुना होगा, जो आपको इंटरैक्टिव वेब एप्लिकेशन बनाने देता है। R Shiny 2012 में जारी किया गया था, और यह समझ में आते ही कि यह आसान पैकेज वैज्ञानिकों और विश्लेषकों को अधिक इंटरैक्टिव मॉडल और डैशबोर्ड बनाने की सुविधा देता है, इसकी मांग तेजी से बढ़ी।
2023 में, Python के लिए Shiny अल्फा से बाहर आया, जो Python भाषा के लिए इसी तरह का, रिएक्टिव फ्रेमवर्क प्रदान करता है। Shiny अपनी सरलता और प्रभावशीलता के लिए जाना जाता है, जो बिना व्यापक वेब डेवलपमेंट कौशल के वेब-आधारित डैशबोर्ड और एप्लिकेशन बनाने में सक्षम बनाता है।
Shiny क्या है?
Shiny R के लिए एक ओपन-सोर्स वेब एप्लिकेशन फ्रेमवर्क है और हालिया विकास के साथ, Python के लिए भी। यह डेटा पेशेवरों को अपने विश्लेषणों को इंटरैक्टिव वेब एप्लिकेशन में बदलने में सक्षम बनाता है। Shiny का मूल रिएक्टिव प्रोग्रामिंग की अवधारणा पर आधारित है, जहां इनपुट्स (जैसे स्लाइडर या बटन) में बदलाव आउटपुट्स (जैसे प्लॉट या टेबल) में स्वतः अपडेट ट्रिगर करते हैं।
वेब-आधारित एप्लिकेशन बनाने के लिए Shiny फ्रेमवर्क के कई लाभ हैं। Shiny रिएक्टिव प्रोग्रामिंग का लाभ उठाता है, जिससे आप ऐसे एप्लिकेशन बना सकते हैं जो उपयोगकर्ता इनपुट्स के प्रति गतिशील रूप से प्रतिक्रिया दें, और अधिक आकर्षक व व्यक्तिगत अनुभव बनाएं। Shiny की एक उपयोगकर्ता-अनुकूल लाइब्रेरी और व्यापक प्रलेखन है, जिससे बुनियादी प्रोग्रामिंग ज्ञान रखने वाले भी इंटरैक्टिव और आकर्षक एप्लिकेशन बना सकते हैं। Python प्रेमियों के लिए, Shiny अब Python के समृद्ध डेटा साइंस इकोसिस्टम और Shiny की वेब डेवलपमेंट क्षमताओं के बीच एक पुल प्रदान करता है।
यहां कुछ उदाहरण हैं जहां Shiny फ्रेमवर्क उपयोगी साबित होगा:
नोट: यह समझना महत्वपूर्ण है कि R के लिए Shiny और Python के लिए Shiny अलग हैं। यद्यपि इनमें अंतर्निहित अवधारणाएं समान हैं, लेकिन सिंटैक्स और पारिभाषिक शब्दावली परस्पर विनिमेय नहीं हैं। यदि आप R के लिए Shiny का उपयोग करना जानते हैं, तो Python के लिए Shiny सीखने में आपको बढ़त होगी, फिर भी आपको Python के अनुरूप किए गए अंतर सीखने होंगे।
अन्य वेब एप्लिकेशन फ्रेमवर्क्स की तुलना में Shiny
जब डेटा साइंस के लिए वेब एप्लिकेशन विकास पर विचार किया जाता है, तो यह समझना उपयोगी है कि Shiny अन्य फ्रेमवर्क्स की तुलना में कैसा है।
Shiny सरलता और बहुमुखी प्रतिभा का एक अनूठा संयोजन प्रदान करता है। हालांकि, Python संस्करण अन्य फ्रेमवर्क्स की तुलना में अपेक्षाकृत नया है। Shiny को इस तरह डिजाइन किया गया है कि Python कोडिंग ज्ञान रखने वाला कोई भी व्यक्ति वेब एप्लिकेशन विकसित कर सके।
अपनी आसानी के साथ-साथ, इसे निर्बाध स्केलिंग के लिए डिजाइन किया गया है, जो कैशिंग और चयनात्मक रिएक्टिविटी का उपयोग करके इसके रिएक्टिव फ्रेमवर्क को कुशल रखता है। यह इसे कुछ अन्य वेब डिजाइन फ्रेमवर्क्स पर बढ़त देता है। इसका घोषणात्मक सिंटैक्स और रिएक्टिव प्रोग्रामिंग मॉडल डेटा विश्लेषकों के लिए भी सुलभ बनाता है, जिससे वे व्यापक वेब डेवलपमेंट विशेषज्ञता के बिना इंटरैक्टिव एप्लिकेशन बना सकें।
इसके विपरीत, Dash और Streamlit जैसे अन्य फ्रेमवर्क अलग ताकतें प्रदान करते हैं। Dash Pythonic सिंटैक्स का उपयोग करता है और त्वरित विकास पर जोर देता है। Streamlit स्वचालित रेंडरिंग के साथ तेज प्रोटोटाइपिंग में उत्कृष्ट है, लेकिन जब इनपुट बदलते हैं तो यह पूरे प्रोग्राम को फिर से चलाता है, जिससे एप्लिकेशन के स्केल होने पर अकार्यकुशलता हो सकती है। Flask और Django सामान्य-उद्देश्य वेब फ्रेमवर्क हैं जो लचीलापन और नियंत्रण प्रदान करते हैं, लेकिन अक्सर अधिक वेब डेवलपमेंट विशेषज्ञता की आवश्यकता होती है। यदि आप इन्हें सीखने में रुचि रखते हैं, तो आप DataCamp का Django ट्यूटोरियल पढ़ सकते हैं।
कोड-आधारित वेब डेवलपमेंट प्लेटफॉर्म्स के अलावा, डेटा विश्लेषक समान डैशबोर्ड-निर्माण उद्देश्यों के लिए Tableau और Power BI का भी उपयोग करते हैं। ये डेटा विज़ुअलाइज़ेशन प्लेटफॉर्म हैं जो शक्तिशाली टूल प्रदान करते हैं, लेकिन इनके साथ लाइसेंसिंग लागतें आती हैं। इन प्रोग्रामों में शुद्ध कोड की तुलना में विश्लेषण सुविधाएं सीमित होती हैं और अधिक जटिल मॉडलिंग और विश्लेषण आमतौर पर कहीं और पूरे करने पड़ते हैं। आप DataCamp पर Power BI के बारे में और जान सकते हैं।
किसी दिए गए डेटा साइंस एप्लिकेशन के लिए सबसे उपयुक्त फ्रेमवर्क चुनते समय परियोजना की आवश्यकताओं, भाषा वरीयताओं और विशेष सुविधाओं की जरूरतों पर विचार करना आवश्यक है। जबकि अन्य फ्रेमवर्क अपनी-अपनी खूबियां लाते हैं, Shiny की सरलता और लचीलापन, साथ ही Python इंटीग्रेशन का अनूठा मेल, इसे उन सभी के लिए एक आकर्षक विकल्प बनाता है जो अपने डेटा साइंस प्रोजेक्ट्स को ऊंचाई देना चाहते हैं।
फ्रेमवर्क
मुख्य विशेषताएं
भाषा समर्थन
सीखने की अवस्था
उपयोग परिदृश्य
Shiny
सरलता और बहुमुखी प्रतिभा
R, Python
कम
इंटरैक्टिव एप्लिकेशन और विज़ुअलाइज़ेशन
Dash
Pythonic सिंटैक्स
Python
मध्यम
हल्के वेब ऐप्स का त्वरित विकास
Streamlit
स्वचालित रेंडरिंग के साथ तेज प्रोटोटाइपिंग
Python
कम
डेटा ऐप्स के लिए त्वरित प्रोटोटाइपिंग
Flask
सामान्य-उद्देश्य वेब फ्रेमवर्क
Python
मध्यम से उच्च
पूर्ण-सेवा वेब ऐप्स
Django
हाई-लेवल Python वेब फ्रेमवर्क
Python
मध्यम से उच्च
स्केलेबल वेब एप्लिकेशन और सेवाएं
Tableau/Power BI
डेटा विज़ुअलाइज़ेशन प्लेटफॉर्म
लागू नहीं
कम
बिजनेस इंटेलिजेंस विज़ुअलाइज़ेशन
डेवलपमेंट एनवायरनमेंट सेट करना
Python के लिए Shiny की एक बड़ी खासियत यह है कि इसमें एक वेब एडिटर है जहाँ आप बिना कुछ डाउनलोड या इंस्टॉल किए अपना ऐप बना सकते हैं। यह वेब एडिटर कई ऐप्स और फंक्शनैलिटी के उदाहरणों के साथ आता है, जिनका उपयोग आप शुरुआत करने और अपने नए Shiny एप्लिकेशन को आज़माने के लिए कर सकते हैं।
हालाँकि, आपके विकास के किसी चरण में आप अपने स्थानीय डिवाइस पर Shiny चलाना चाहेंगे। यह खंड Python, Shiny और उनके संबंधित निर्भरताओं की स्थापना, साथ ही आवश्यक कॉन्फ़िगरेशन के माध्यम से मार्गदर्शन करेगा ताकि आपका लोकल एनवायरनमेंट सुचारू रूप से चल सके।
Python की स्थापना
ऑफ़लाइन Shiny के साथ काम शुरू करने के लिए, आपके कंप्यूटर पर Python इंस्टॉल होना चाहिए। यदि आपने अभी तक Python इंस्टॉल नहीं किया है, तो आधिकारिक Python वेबसाइट python.org पर जाएँ और अपने ऑपरेटिंग सिस्टम के लिए Python का नवीनतम संस्करण डाउनलोड करें। यदि आपने पहले से Python इंस्टॉल कर रखा है, तो Shiny को सही ढंग से चलाने के लिए नवीनतम संस्करण में अपडेट करने की सलाह देता/देती हूँ।
डाउनलोड किए गए इंस्टॉलर को चलाएँ और इंस्टॉलेशन प्रक्रिया के दौरान "Add Python to PATH" वाला बॉक्स चुनें। इससे कमांड लाइन से Python चलाना आसान हो जाता है। एक कमांड प्रॉम्प्ट या टर्मिनल खोलें और सत्यापित करने के लिए python --version टाइप करें कि Python सफलतापूर्वक इंस्टॉल हो गया है। आपको संस्करण संख्या दिखाई देनी चाहिए। सुविधा के लिए आप एक Integrated Development Environment (IDE) भी इंस्टॉल करना चुन सकते हैं।
Shiny की स्थापना
एक बार Python सेट हो जाने पर, आप Shiny इंस्टॉल कर सकते हैं। जब तक आपके पास Python का नवीनतम संस्करण है, आपको कमांड प्रॉम्प्ट या टर्मिनल खोलकर pip का उपयोग करते हुए Python के लिए Shiny लाइब्रेरी इंस्टॉल करने के लिए निम्न कमांड चलाने में सक्षम होना चाहिए:
यदि आप pip के बजाय conda का उपयोग करते हैं, तो इसके बजाय यह कमांड उपयोग करें:
Shiny में आपके सिस्टम कॉन्फ़िगरेशन के आधार पर अतिरिक्त निर्भरताएँ हो सकती हैं। सुनिश्चित करें कि ये निर्भरताएँ इंस्टॉल हैं, इसके लिए Shiny डॉक्स में दिए निर्देशों का पालन करें।
डेवलपमेंट एनवायरनमेंट का कॉन्फ़िगरेशन
अब जब आपने Python और Shiny इंस्टॉल कर लिए हैं, तो तीन और विषय हैं जिन पर आपको ध्यान देना है।
अब जब आपका डेवलपमेंट एनवायरनमेंट सेट और कॉन्फ़िगर हो चुका है, तो आप Python के लिए Shiny के साथ इंटरैक्टिव वेब एप्लिकेशन बनाना शुरू करने के लिए तैयार हैं।
एक बुनियादी Shiny ऐप बनाना
Shiny ऐप की संरचना को समझना
एक Shiny ऐप दो मुख्य घटकों से बनता है: यूज़र इंटरफ़ेस (UI) और सर्वर लॉजिक।
UI यह परिभाषित करता है कि ऐप कैसा दिखता है और उपयोगकर्ता इंटरैक्शन के लिए कौन से तत्व उपलब्ध हैं। उपयोगकर्ता जो कुछ देख सकता है या जिसके साथ इंटरैक्ट कर सकता है, वह सब UI का हिस्सा है, जिनमें स्लाइडर, बटन और प्लॉट जैसे तत्व शामिल हैं।
UI उन फ़ंक्शनों का उपयोग करके बनाया जाता है जो "ui." से शुरू होते हैं, जैसे ui.input_numeric, ui.input_slider, और ui.output_text। इन फ़ंक्शनों को एक पेज फ़ंक्शन में रैप किया जाता है, आमतौर पर ui.page_fluid, जो पेज के बेसिक लेआउट का वर्णन करता है।
सर्वर लॉजिक यह परिभाषित करता है कि ऐप कैसे व्यवहार करता है और उपयोगकर्ता इनपुट्स का जवाब कैसे देता है। इसमें वे फ़ंक्शन शामिल होते हैं जो UI से उपयोगकर्ता इनपुट लेते हैं, उन्हें प्रोसेस करते हैं, और तदनुसार आउटपुट तत्वों को अपडेट करते हैं। सर्वर लॉजिक server फ़ंक्शन का उपयोग करके बनाया जाता है और इनपुट्स व आउटपुट्स को संभालने के लिए रिएक्टिव एक्सप्रेशन्स शामिल करता है।
UI और सर्वर लॉजिक को परिभाषित करने के बाद, हम उन्हें एक पूर्ण एप्लिकेशन में जोड़ते हैं, जिसका नाम "app" होना चाहिए।
रिएक्टिव प्रोग्रामिंग मॉडल को समझना
इस उदाहरण पर विचार करें, जो Shiny डॉक्स से है।
यह उदाहरण एक स्लाइडर से उपयोगकर्ता इनपुट लेता है और इसका उपयोग एक गणना करने में करता है, जो स्लाइडर के नीचे दिए गए टेक्स्ट बॉक्स में प्रदर्शित होती है। यह बहुत सरल उदाहरण VS Code में लोकल होस्ट पर एक साधारण ब्राउज़र में चल रहा है।
जैसा कि आप इस सरल डेमो से देख सकते हैं, Shiny का जादू इसकी इंटरएक्टिविटी में है। Shiny की इंटरएक्टिविटी का इंजन इसका रिएक्टिव प्रोग्रामिंग मॉडल है। Shiny में, हम रिएक्टिव एक्सप्रेशन्स परिभाषित करते हैं ताकि इनपुट्स और आउटपुट्स के बीच निर्भरता की एक शृंखला बन सके। जब कोई इनपुट बदलता है, तो सभी संबंधित रिएक्टिव एक्सप्रेशन्स और आउटपुट्स अपने-आप अपडेट हो जाते हैं। यही रिएक्टिविटी Shiny के केंद्र में है। आप Shiny की रिएक्टिविटी के और विवरण यहाँ पढ़ सकते हैं।
कुछ प्रमुख तत्व हैं जो इस रिएक्टिविटी को संभव बनाते हैं।
पहला है रिएक्टिव कैलकुलेशन, या
reactive.Calc। यह किसी इनपुट पर आधारित गणना है। यह गणना तब तक अपने लौटाए गए मान को कैश करती है जब तक इनपुट नहीं बदलता; इनपुट बदलते ही यह नए इनपुट के साथ फिर चलती है। इससे आपका ऐप उपयोगकर्ता इनपुट्स पर कुशलतापूर्वक प्रतिक्रिया दे पाता है। रिएक्टिव कैलकुलेशन @reactive.Calc डेकोरेटर का उपयोग करते हैं, जैसा कि नीचे दिए उदाहरण में है।एक अन्य रिएक्टिव तत्व है रिएक्टिव इफेक्ट, या
reactive.Effect। रिएक्टिव इफेक्ट चलने पर कोई मान वापस नहीं करता। इसके बजाय, यह कोई इफेक्ट ट्रिगर करता है, जैसे किसी वैरिएबल को संशोधित करना या फ़ाइल सेव करना। यह भी इनपुट बदलने पर फिर चलाया जाता है। सबसे सामान्य reactive.Effect @output डेकोरेटर है, जो परिणाम के साथ एक स्ट्रिंग को मैसेज क्यू में जोड़ता है, जैसा कि नीचे दिए उदाहरण में है।कभी-कभी, आप नहीं चाहेंगे कि आपके ऐप की रिएक्टिविटी इतनी तत्काल हो। उदाहरण के लिए, यदि आपके पास गणनात्मक रूप से महंगा मॉडल है, तो आप चाहते होंगे कि मॉडल को फिर चलाने से पहले कई पैरामीटर्स अपडेट हो जाएँ। ऐसे में, reactive.event() या reactive.isolate() के साथ अपने ऐप की रिएक्टिविटी सीमित करने के विकल्प मिलते हैं।
अपने Shiny ऐप में इंटरएक्टिविटी जोड़ना
जब आपको अधिक जटिल ऐप की जरूरत हो
इस रिएक्टिविटी लॉजिक के साथ, Python के लिए Shiny आपकी जरूरत के अनुसार ऐप्स को जितना सरल या जटिल चाहें बना सकता है। आप रेडियो बटन, चेक बॉक्स, स्लाइडर, टेक्स्ट इनपुट बॉक्स, ग्राफ़, मानचित्र, और बहुत कुछ जोड़ सकते हैं! यहाँ Shiny डॉक्स से थोड़ा अधिक जटिल उदाहरण है।
इस उदाहरण में, हमने कुछ यादृच्छिक डेटा का हीट मैप बनाया। उपयोगकर्ता जिस शैली का हीटमैप देखना चाहता है, उसके लिए एक रेडियो बटन विकल्प है, और स्लाइडर फ़ंक्शन हीटमैप पर रंगों की रेंज को बदलता है। Posit (वह कंपनी जिसने Shiny बनाया) अपनी वेबसाइट पर कई और उदाहरण प्रदान करती है, जिनमें यह मज़ेदार Wordle क्लोन भी शामिल है।
जहाँ इस तरह की इंटरएक्टिविटी मज़ेदार है, वहीं इसके कई उपयोगी अनुप्रयोग भी हैं। आप ऐसा मॉडल डिजाइन कर सकते हैं जो लवणता और तापमान जैसे पर्यावरणीय कारकों को लेकर शैवाल प्रस्फुटन की भविष्यवाणी करे। क्षेत्र में मौजूद शोधकर्ता आपके Shiny ऐप में मौजूदा मान दर्ज कर सकता है, और ऐप शोधकर्ता को वास्तविक समय की भविष्यवाणी देगा।
आप ऐसा मॉडल डिजाइन कर सकते हैं जो यदि कुछ शर्तें पूरी हों तो वार्षिक आय का प्रक्षेपण दिखाए। इसके बाद, प्रबंधक विभिन्न परिदृश्यों को आज़माने के लिए अलग-अलग बिक्री संख्याएँ दर्ज करके या कौन-से उत्पाद वे पेश करते हैं उसके लिए चेक बॉक्स चुनकर आपके ऐप का उपयोग कर सकते हैं, और उनकी आँखों के सामने अनुमानित परिणाम अपडेट होते देखेंगे।
कई उद्योगों में उपयोग के मामले असंख्य हैं।
इनपुट्स और आउटपुट्स के प्रकार
Shiny विभिन्न डेटा विज़ुअलाइज़ेशन और इंटरैक्शन आवश्यकताओं को पूरा करने के लिए कई तरह के इनपुट और आउटपुट विकल्प प्रदान करता है। यहाँ Python के लिए Shiny में उपलब्ध सामान्य इनपुट्स और आउटपुट्स की एक सरल तालिका दी गई है।
इनपुट्स
यह क्या करता है?
एक्शन बटन इनपुट
उपयोगकर्ता के चयन के लिए एक बटन प्रदान करता है।
एक्शन लिंक इनपुट
उपयोगकर्ता को एक लिंक पर क्लिक करने देता है।
टेक्स्ट इनपुट
सरल टेक्स्ट की एक पंक्ति के लिए टेक्स्ट बॉक्स प्रदान करता है।
न्यूमेरिक इनपुट
ऊपर और नीचे तीरों के साथ एक संख्यात्मक इनपुट बॉक्स प्रदान करता है।
स्लाइडर इनपुट
एक संख्यात्मक स्लाइडर बनाता है।
चेकबॉक्स इनपुट
True/False अनुप्रयोगों के लिए एक एकल चेकबॉक्स बनाता है।
स्विच इनपुट
एक एकल ऑन/ऑफ स्विच बनाता है।
चेकबॉक्स समूह इनपुट
कई विकल्पों के लिए कई चेकबॉक्स बनाता है।
सेलेक्ट इनपुट
विकल्पों का एक ड्रॉपडाउन मेनू प्रदान करता है।
रेडियो बटन इनपुट
रेडियो बटन विकल्प बनाता है, जिससे केवल एक विकल्प चुनना संभव होता है।
टेक्स्ट एरिया इनपुट
लंबे टेक्स्ट इनपुट के लिए आकार बदलने योग्य विंडो वाला बड़ा टेक्स्ट बॉक्स प्रदान करता है।
डेट इनपुट
उपयोगकर्ताओं के लिए तारीख चुनने हेतु कैलेंडर वाला डेट इनपुट बॉक्स बनाता है।
डेट रेंज इनपुट
मूलतः दो युग्मित डेट इनपुट बॉक्स, जो एक रेंज इनपुट करने की अनुमति देते हैं।
पासवर्ड इनपुट
ऐसा टेक्स्ट बॉक्स बनाता है जो इनपुट टेक्स्ट को छुपाता है।
———————————————————————————————————————————
आउटपुट्स
यह क्या करता है?
टेक्स्ट आउटपुट
सादा HTML में टेक्स्ट लिखता है।
वर्बेटिम टेक्स्ट आउटपुट
मोनोस्पेस्ड कोड ब्लॉक के भीतर टेक्स्ट लिखता है।
UI आउटपुट
उपयोगकर्ता इनपुट्स के आधार पर अधिक डायनेमिक UI की अनुमति देता है।
प्लॉट आउटपुट
matplotlib जैसी सामान्य Python लाइब्रेरीज़ का उपयोग कर प्लॉट बनाता है।
टेबल आउटपुट
कॉलम हेडिंग्स के साथ एक सादा टेबल बनाता है।
डेटा फ्रेम / ग्रिड आउटपुट
फ़िल्टर्स, ग्रिड लाइन्स और रो लिमिट्स के साथ एक कस्टमाइज़ेबल टेबल बनाता है।
Shiny कंपोनेंट्स की पूरी सूची के लिए, यह पेज देखें।
Python के लिए Shiny में यूज़र इंटरफ़ेस को कस्टमाइज़ करना
लेआउट और थीम्स
Shiny पेज फ़ंक्शन का उपयोग करते हुए विभिन्न लेआउट्स के माध्यम से यूज़र इंटरफ़ेस को कस्टमाइज़ करने में लचीलापन प्रदान करता है। सबसे आमतौर पर उपयोग किया जाने वाला पेज फ़ंक्शन page_fluid() है, जो अलग-अलग स्क्रीन आकारों के अनुरूप होने वाला रिस्पॉन्सिव डिज़ाइन देता है। विशिष्ट डिज़ाइन आवश्यकताओं वाले एप्लिकेशन के लिए उपयुक्त फिक्स्ड-विथ लेआउट page_fixed() पेज फ़ंक्शन का उपयोग करके हासिल किया जा सकता है।
Shiny वेब-आधारित ऐप्स बनाने के लिए HTML का उपयोग करता है। इसका मतलब है कि आप CSS थीम्स का उपयोग करके अपने ऐप को स्टाइल कर सकते हैं। कस्टम CSS स्टाइलिंग जोड़ने से आप अपने Shiny ऐप की उपस्थिति को अपनी सौंदर्य वरीयताओं या कॉर्पोरेट ब्रांडिंग से मिलान करने के लिए अनुकूलित कर सकते हैं।
कस्टम विजेट्स और एक्सटेंशंस का कार्यान्वयन
Shiny ipywidgets को सपोर्ट करता है जो इंटरैक्टिव प्लॉट्स, मानचित्र, 3D-विज़ुअलाइज़ेशन और मीडिया स्ट्रीमिंग की विविधता के लिए उपयोगी हैं। इसमें अन्य Python विजेट्स के लिए भी कुछ फंक्शनैलिटी है जिन्हें HTML फ़ाइल के रूप में सेव किया जा सकता है। कस्टम विजेट्स को शामिल करके, आप अपने Shiny ऐप को विशिष्ट उपयोग मामलों के अनुरूप ढाल सकते हैं और अधिक कस्टमाइज़्ड यूज़र अनुभव बना सकते हैं।
अपने Python के लिए Shiny ऐप को डिप्लॉय करना
विभिन्न डिप्लॉयमेंट विकल्पों की व्याख्या
एक बार जब आप एक आकर्षक Shiny ऐप बना लेते हैं, तो आप संभवतः इसे वेब पर डिप्लॉय करके व्यापक दर्शकों, अपने पोर्टफोलियो या क्लाइंट के साथ साझा करना चाहेंगे। Shiny अलग-अलग जरूरतों के अनुरूप कई डिप्लॉयमेंट विकल्पों का समर्थन करता है।
स्थानीय डिप्लॉयमेंट: आप अपने Shiny ऐप को एक लोकल सर्वर पर डिप्लॉय कर सकते हैं, जिससे यह आपके संगठन के भीतर या किसी विशेष उपयोगकर्ता समूह के लिए सुलभ हो जाए।
क्लाउड-आधारित प्लेटफॉर्म्स: क्लाउड प्लेटफॉर्म Shiny ऐप्स को डिप्लॉय करने के लिए स्केलेबल और सुलभ समाधान प्रदान करते हैं। लोकप्रिय विकल्पों में शामिल हैं:
ShinyLive: Shiny एक नया तरीका प्रदान करता है, जिससे वेब ब्राउज़र के भीतर ही Shiny एप्लिकेशन चलाए जा सकते हैं, बिना अलग सर्वर पर Python चलाए। यह वेबअसेंबली और pyodide को जोड़ता है ताकि आपके कंप्यूटर पर Python या Shiny इंस्टॉल किए बिना Shiny एप्लिकेशन चल सकें। इस प्लेटफॉर्म में उपलब्ध Python पैकेज सीमित हैं और यह अन्य प्लेटफॉर्म्स जितना सुरक्षित नहीं हो सकता, लेकिन गैर-संवेदनशील कोड को जल्दी साझा करने का यह अच्छा तरीका है।
निष्कर्ष
Python के लिए Shiny वेब ऐप डेवलपमेंट क्षेत्र में एक रोमांचक नया खिलाड़ी है। इसका उपयोग वेब डेवलपमेंट सीखने में बड़े समय निवेश के बिना आपके डेटा प्रोजेक्ट को महत्वपूर्ण रूप से उन्नत कर सकता है। यदि आप R के लिए Shiny आज़माने में रुचि रखते हैं, तो DataCamp का यह Shiny मूलभूत कोर्स और R Shiny के साथ डैशबोर्ड बनाने पर यह कोर्स देखें। एक बार जब आप बुनियादी बातें सीख लें, तो Shiny केस स्टडी के साथ अपने नए कौशल का अभ्यास करें!