R ile çalışma deneyimi olanlar, etkileşimli web uygulamaları oluşturmanıza olanak tanıyan Shiny paketini muhtemelen duymuştur. R Shiny 2012’de yayınlandı ve kullanımının kolay olduğu anlaşılınca, bilim insanların ve analistlerin daha etkileşimli modeller ve panolar oluşturabilmesine imkan sağladığı için talep hızla arttı.
2023’te, Python için Shiny alfa sürecinden çıktı ve Python dili için benzer, tepkisel (reactive) bir çerçeve sundu. Shiny, kapsamla web geliştirme becerilerine gerek kalmadan web tabanlı panolar ve uygulamalar oluşturmada sağladığı sadelik ve etkililikle bilinir.
Shiny nedir?
Shiny, R için ve yakın zamandaki geliştirmelerle Python için de kullanılabilen açık kaynaklı bir web uygulama çerçevesidir. Veri profesyonellerinin analizlerini etkileşimli web uygulamalarına dönüştürmesine olanak tanır. Shiny’nin çekirdeğinde, girdi değişikliklerinin (kaydırıçlar veya düğmeler gibi) çıktıları (grafikler veya tablolar gibi) otomatik olarak güncellediği tepkisel programlama kavramı yer alır.
Web tabanlı uygulamalar oluşturmak için Shiny çerçevesinin birçok faydası vardır. Shiny, tepkisel programlamadan yararlanarak kullanıcı girdilerine dinamik olarak yanıt veren uygulamalar oluşturmanıza olanak tanır; bu da daha ilgi çekici ve kişiselleştirilmiş bir deneyim yaratır. Shiny’nin kullanıcı dostu bir kütüphanesi ve kapsamlı dokümanları bulunur; böylece temel programlama bilgisi olanlar bile etkileşimli ve görsel açıdan çekici uygulamalar geliştirebilir. Python meraklıları için Shiny, Python’un zengin veri bilimi ekosistemi ile Shiny’nin web geliştirme yetenekleri arasında bir köprü sunar.
Shiny çerçevesinin değerli olacağı bazı örnekler şunlardır:
Etkileşimli Panolar: Shiny, kullanıcıların verileri gerçek zamanlı olarak keşfetmesine ve görselleştirmesine olanak tanıyan etkileşimli panolar oluşturmak için idealdir. Mükemmel bir pano tasarlamak için bu ipuçlarını kullanabilirsiniz.
Veri Keşi: Analistler, kullanıcıların veri kümesini etkileşimli olarak keşfetmesini, parametreleri ve görselleştirmeleri anında ayarlamasını sağlayan uygulamalar için Shiny’yi kullanabilir.
Karar Destek Sistemleri: Shiny, dinamik içgörüler sunarak veriye dayalı karar vermeyi kolaylaştıran karar destek sistemleri geliştirmede kullanılabilir.
Eğitim Araçları: Shiny, etkileşimli öğretim materyalleri ve gösterimler oluşturmayı sağladığı için eğitim bağlamında da değerlidir.
Not: R için Shiny ile Python için Shiny farklıdır. Altyapıdaki kavramlar benzer olsa da sözdizimi ve terimler birebir değiştirilebilir değil. R için Shiny kullanmayı biliyorsanız, Python için Shiny öğrenirken öne geçersiniz; ancak Python’a uyum sağlamak için yapılan farklılıkları yine de öğrenmeniz gerekir.
Shiny’nin diğer web uygulama çerçeveleriyle karşılaştırılması
Veri bilimi için web uygulama geliştirmeyi değerlendirirken, Shiny’nin diğer çerçevelere göre konumunu anlamak faydalıdır.
Shiny, benzersiz bir sadelik ve esneklik bileşimi sunar. Ancak Python sürümü, diğer çerçevelere kıyasla görece yenidir. Shiny, Python kodlama bilgisi olan herkes için web uygulamaları geliştirmeyi erişilebilir kılmak üzere tasarlanmıştır.
Ayrıca, kullanım kolaylığının yanı sıra ölçeklemeyi sorunsuz kılacak şekilde tasarlanmıştır; önbellekleme ve seçici tepkiselliği kullanarak tepkisel çerçevesini verimli tutar. Bu da ona bazı diğer web tasarım çerçevelerine göre avantaj sağlar. Bildirimsel sözdizimi ve tepkisel programlama modeli, kapsamla web geliştirme uzmanlığı olmadan da veri analistlerinin etkileşimli uygulamalar oluşturmasını mümkün kılar.
Buna karşın, Dash ve Streamlit gibi diğer çerçeveler farklı güçlü yanlar sunar. Dash, Python’a özgü sözdizimi kullanır ve hızlı geliştirmeyi ön plana çıkarır. Streamlit, otomatik oluşturma ile hızlı prototiplemede öne çıkar; ancak girdiler değiştiğinde tüm programı yeniden çalıştırır ve uygulamalar büyüdükçe verimsizlik yaratabilir. Flask ve Django, esneklik ve kontrol sağlayan genel amaçlı web çerçeveleridir; ancak genellikle daha fazla web geliştirme uzmanlığı gerektirir. Bunları öğrenmek ilginizi çekiyorsa, DataCamp’in Django eğiticisini okuyabilirsiniz.
Koda dayalı web geliştirme platformlarının yanı sıra, veri analistleri benzer pano oluşturma amaçları için Tableau ve Power BI’ı da kullanır. Bunlar, güçlü araçlar sunan veri görselleştirme platformlarıdır; ancak lisans maliyetleri vardır. Ayrıca bu programlar, saf koda kıyasla sınırlı analiz özelliklerine sahiptir ve çoğu karmaşık modelleme ve analizlerin başka yerde yapılmasını gerektirir. DataCamp’te Power BI hakkında daha fazla bilgi edinebilirsiniz.
Belirli bir veri bilimi uygulaması için en uygun çerçeveyi seçerken proje gereksinimlerini, dil tercihlerini ve özel özellik ihtiyaçlarını dikkate almak önemlidir. Diğer çerçeveler kendi güçlü yanlarını getirirken, Shiny’nin sadelik ve esnekliğin benzersiz karışımı ile Python entegrasyonu, veri bilimi projelerini yükseltmek isteyen herkes için onu cazip bir seçenek haline getirir.
Çerçeve
Ana Özellikler
Dil Desteği
Öğrenme Eğrisi
Kullanım Alanı
Shiny
Sadelik ve çok yönlülülülük
R, Python
Düşük
Etkileşimli uygulamalar ve görselleştirmeler
Dash
Python’a özgü sözdizimi
Python
Orta
Hafif web uygulamalarını hızlı geliştirme
Streamlit
Otomatik oluşturma ile hızlı prototipleme
Python
Düşük
Veri uygulamaları için hızlı prototipleme
Flask
Genel amaçlı web çerçevesi
Python
Orta ila Yüksek
Tam donanımlı web uygulamaları
Django
Yüksek seviyeli Python web çerçevesi
Python
Orta ila Yüksek
Ölçeklenebilir web uygulamaları ve hizmetler
Tableau/Power BI
Veri görselleştirme platformları
Uygulanamaz
Düşük
İş Zekâsı Görselıstirme
Geliştirme Ortamını Kurma
Python için Shiny’nin harika yanlarından biri, hiçbir şey indirip yüklemeden uygulamanızı oluşturabileceğiniz bir web düzenleyicisinin bulunmasıdır. Bu web düzenleyici, başlamanıza ve yeni Shiny uygulamanızı denemenize yardımcı olacak birçok uygulama ve işlevsellik örneğiyle birlikte gelir.
Ancak geliştirmenizin bir aşamasında, muhtemelen Shiny’yi yerel cihazınızda çalıştırmak isteyeceksiniz. Bu bölüm, Python ve Shiny’nin ve bunların bağımlılıklarının kurulumunun yanı sıra yerel ortamınızı sorunsuz çalışır hale getirmek için gerekli yapılandırmalar konusunda size rehberlik edecektir.
Python’ın kurulumu
Shiny ile çevrimdışı çalışmaya başlamak için bilgisayarınızda Python kurulu olmalıdır. Henüz Python kurmadıysanız, resmi Python web sitesini ziyaret edip python.org adresinden işletim sisteminize uygun en son sürümü indirin. Daha önceden Python kurduysanız, Shiny’nin doğru çalışmasını sağlamak için en yeni sürüme güncellemeyi öneririm.
İndirilen yükleyiciyi çalıştırın ve kurulum sürecinde "Add Python to PATH" kutucuğunu işaretleyin. Bu, komut satırından Python çalıştırmayı kolaylaştırır. Bir komut istemi veya terminal açın ve Python’un başarıyla kurulduğunu doğrulamak için python --version yazın. Sürüm numarasını görmelisiniz. Ayrıca, kolaydır diye Tümleşik Geliştirme Ortamı (IDE) de kurmayı tercih edebilirsiniz.
Shiny’nin kurulumu
Python ayarlandıktan sonra Shiny’yi kurabilirsiniz. En yeni Python sürümüne sahip olduğunuz sürece, bir komut istemi veya terminal açıp pip kullanarak Python için Shiny kütüphanesini kurmak için aşağıdaki komutu kullanabilmelisiniz:
Sistem yapılandırmanıza bağlı olarak Shiny’nin ek bağımlılıkları olabilir. Bu bağımlılıkların kurulduğundan Shiny dokümanlarındaki talimatları izleyerek emin olun.
Geliştirme ortamının yapılandırılması
Artık Python ve Shiny kurulduğuna göre, ele almanız gereken üç konu daha var.
IDE:VS Code gibi bir IDE kullanıyorsanız, Shiny çıktılarınızın IDE içinde görüntülenmesini sağlayan bir uzantı yüklemeyi tercih edebilirsiniz.
Sürüm Kontrolü: Kodunuzdaki değişiklikleri izlemek için Git gibi sürüm kontrol sistemlerini kullanmayı düşünün. Shiny uygulamalarınızı kolayca yönetmek ve işbirliği yapmak için proje klasörünüzde bir Git deposu başlatın.
Kod Yapısı: Proje yapınızı düzenleyin. Shiny uygulamalarınız, veri kümeniz ve diğer kaynaklar için ayrı klasörler oluşturun. Bu, temiz ve düzenli bir kod tabanı sürdürmeye yardımcı olur ve her kodlama projesi için en iyi uygulamadır.
Geliştirme ortamınız artık kurulu ve yapılandırılmış olduğuna göre, Python için Shiny ile etkileşimli web uygulamaları oluşturmaya hazırsınız.
Temel Bir Shiny Uygulaması Oluşturma
Bir Shiny uygulamasının yapısını anlama
Bir Shiny uygulaması iki ana bileşenden oluşur: kullanıcı arayüzü (UI) ve sunucu mantığı.
UI, uygulamanın nasıl görüneceğini ve kullanıcı etkileşimi için hangi öğelerin bulunduğunu tanımlar. Kullanıcının görebildiği veya etkileşime girebildiği her şey UI’ın parçasıdır; kaydırıçlar, düğmeler ve grafikler gibi öğeler buna dahildir.
UI, “ui.” ile başlayan işlevler kullanılarak oluşturulur; ui.input_numeric, ui.input_slider ve ui.output_text gibi. Bu işlevler, genellikle sayfanın temel yerleşimini tanımlayan ui.page_fluid gibi bir sayfa işlevi içine alınır.
Sunucu mantığı, uygulamanın nasıl davrandığını ve kullanıcı girdilerine nasıl yanıt verdiğini tanımlar. UI’dan gelen kullanıcı girdilerini alan, bunları işleyen ve buna göre çıktı öğelerini güncelleyen işlevlerden oluşur. Sunucu mantığı, server işlevi kullanılarak oluşturulur ve girdileri ve çıktıları yönetmek için tepkisel ifadeler içerir.
UI ve sunucu mantığı tanımlandıktan sonra, bunları tamamlanmış bir uygulamada birleştiririz ve bu uygulamanın adı mutlaka “app” olmalıdır.
Bu örnek, kaydırıçtan gelen kullanıcı girdisini alır ve aşağıdaki metin kutusunda görüntülenen bir hesaplama yapmak için kullanır. Bu çok basit örnek, VS Code içinde yerel ana makinede basit bir tarayıcıda çalışıyor.
Bu basit gösterimden de görebileceğiniz gibi, Shiny’nin büyüsü etkileşimselliğinde yatar. Shiny’nin etkileşimselliğinin motoru, tepkisel programlama modelidir. Shiny’de, girdiler ve çıktılar arasında bağımlılık zinciri oluşturmak için tepkisel ifadeler tanımlarız. Bir girdi değiştiğinde, tüm bağımlı tepkisel ifadeler ve çıktılar otomatik olarak güncellenir. Bu tepkisellik, Shiny’nin özündedir. Shiny’nin tepkiselliği hakkında daha fazla ayrıntıyı buradan okuyabilirsiniz.
Bu tepkiselliği mümkün kılan bazı temel öğeler vardır.
Öncelikle, tepkisel hesaplama ya da reactive.Calc vardır. Bu, bir girdiye dayalı bir hesaptır. Bu hesap, döndürdüğü değeri, girdi değişene kadar önbelleğinde tutar; girdi değiştiğinde ise yeni girdiye göre yeniden çalışır. Bu, uygulamanızın kullanıcı girdilerine verimli şekilde yanıt vermesini sağlar. Tepkisel hesaplamalar, aşağıdaki örnekte olduğu gibi @reactive.Calc süsleyicisini (decorator) kullanır.
Bir diğer tepkisel öğe, tepkisel etkidir ya da reactive.Effect. Tepkisel etki, çalıştığında bir değer döndürmez. Bunun yerine, bir değişkeni değiştirmek veya bir dosyayı kaydetmek gibi bir etki tetikler. Girdiler değiştiğinde de yeniden çalışır. En yaygın reactive.Effect, aşağıdaki örnekte olduğu gibi sonucun bir dizi olarak mesaj kuyruğuna eklenmesini sağlayan @output süsleyicisidir.
@output@render.textdeftxt():returnf"The value of x is {input.x()}"Altyapı:
Bazen, uygulamanızın tepkiselliğinin bu kadar anlık olmasını istemeyebilirsiniz. Örneğin, hesaplama açısından maliyetli bir modeliniz varsa, modeli yeniden çalıştırmadan önce birkaç parametrenin güncellenmesini beklemek isteyebilirsiniz. Bu durumda, reactive.event() veya reactive.isolate() ile uygulamanızın tepkiselliğini sınırlamak için seçenekler sunulur.
Shiny Uygulamanıza Etkileşimsellik Ekleme
Daha karmaşık bir uygulamaya ihtiyaç duyduğunuzda
Bu tepkisellik mantığıyla, Python için Shiny ihtiyacınız olduğu kadar karmaşık ya da basit uygulamalar oluşturabilir. Radyo düğmeleri, onay kutuları, kaydırıçlar, metin girişi kutuları, grafikler, haritalar ve çok daha fazlasını ekleyebilirsiniz! İşte Shiny dokümanlarından biraz daha karmaşık bir örnek.
Bu örnekte, bazı rastgele verilerin bir sıcaklık haritasını oluşturduk. Kullanıcının görüntülemek istediği sıcaklık haritası stilini seçmesi için bir radyo düğmesi seçeneği vardır ve kaydırıç işlevi, sıcaklık haritasındaki renk aralığını değiştirir. Shiny’yi oluşturan şirket olan Posit, web sitelerinde bu eğlenceli Wordle klonu dahil olmak üzere daha pek çok örnek sunuyor.
Bu tür etkileşimlilik eğlenceli olsa da birçok kullanışlı uygulaması da vardır. Tuzluluk ve sıcaklık gibi çevresel faktörleri alan ve bunları kullanarak yosun patlamalarını tahmin eden bir model tasarlayabilirsiniz. Sahadaki bir araştırmacı, geçerli değerleri Shiny uygulamanıza girebilir ve uygulama, araştırmacıya anlık bir tahmin sunar.
Belirli koşullar sağlanırsa yıllık kazç projeksiyonlarını gösteren bir model de tasarlayabilirsiniz. Bu durumda yöneticiler, farklı satış sayıları girerek veya hangi ürünleri sunduklarını işaretleyerek uygulamanızla farklı senaryoları deneyebilir ve tahmini sonucun gözlerinin önünde güncellendiğini görürler.
Kullanım alanları, birden çok sektöre yayılan sayısızdır.
Girdi ve çıktı türleri
Shiny, farklı veri görselleştirme ve etkileşim ihtiyaçlarına yönelik çeşitli girdi ve çıktı seçenekleri sunar. İşte Python için Shiny’de bulunan yaygın girdi ve çıktıların basit bir tablosu.
Girdiler
Ne iş yapar?
Eylem Düğmesi Girdisi
Kullanıcının seçmesi için bir düğme sağlar.
Eylem Bağlantısı Girdisi
Kullanıcının bir bağlantıya tıklamasına izin verir.
Metin girişi
Basit bir metin satırı için metin kutusu sağlar.
Sayısal giriş
Aşağı ve yukarı okları olan sayısal bir giriş kutusu sağlar.
Kaydırıç girişi
Sayısal bir kaydırıç oluşturur.
Onay kutusu girişi
Doğru/Yanlış uygulamaları için tek bir onay kutusu oluşturur.
Anahtar (switch) girişi
Tek bir açık/kapalı anahtar oluşturur.
Onay kutusu grubu girişi
Birden çok seçenek için birkaç onay kutusu oluşturur.
Seçim girişi
Açılır bir seçenek menüsü sağlar.
Radyo düğmeleri girişi
Tek seçimi zorunlu kılan radyo düğmesi seçenekleri oluşturur.
Metin alanı girişi
Daha uzun metin girdileri için boyutlandırılabilir büyük bir metin kutusu sağlar.
Tarih girişi
Kullanıcıların takvimden tarih seçebileceği bir tarih giriş kutusu oluşturur.
Tarih aralığı girişi
Temelde, bir aralık girilmesini sağlayan eşlemiş iki tarih giriş kutusudur.
Parola girişi
Giriş metnini gizleyen bir metin kutusu oluşturur.
——————————————————————————————————————
Çıktılar
Ne iş yapar?
Metin çıktısı
Düz HTML olarak metin yazar.
Aynen metin çıktısı
Metni sabit aralıklı bir kod bloğu içinde yazar.
UI çıktısı
Kullanıcı girdilerine dayalı daha dinamik bir arayüz sunar.
Grafik çıktısı
matplotlib gibi yaygın Python kütüphanelerini kullanarak bir grafik üretir.
Tablo çıktısı
Sütun başlıkları olan düz bir tablo oluşturur.
Veri Çerçevesi / Izgara çıktısı
Filtreler, izgara çizgileri ve satır sınırları ile özelleştirilebilir bir tablo oluşturur.
Python için Shiny’de Kullanıcı Arayüzünü Özelleştirme
Yerleşimler ve temalar
Shiny, bir sayfa işlevi kullanarak çeşitli yerleşimler aracılığıyla kullanıcı arayüzünü özelleştirmede esneklik sunar. En sık kullanılan sayfa işlevi, farklı ekran boyutlarına uyarlanan duyarlı bir tasarım sağlayan page_fluid()'dır. Belirli tasarım gereksinimleri olan uygulamalar için uygun sabit geniişlikli bir yerleşim ise page_fixed() sayfa işlevi kullanılarak elde edilebilir.
Shiny, web tabanlı uygulamalarını oluşturmak için HTML’den yararlanır. Bu da CSS temalarını kullanarak uygulamanızı stillendirebileceğiniz anlamına gelir. Özel CSS stili eklemek, Shiny uygulamanızın görünümünü estetik tercihlerinizle ya da kurumsal markanızla uyumlu hale getirmenize olanak tanır. Top of Form
Özel bileşen ve uzantıların uygulanması
Shiny, ipywidgets’ı destekler ve çeşitli etkileşimli grafikler, haritalar, 3B görselleştirmeler ve medya akışı sağlar. Ayrıca, HTML dosyası olarak kaydedilebilen bazı diğer Python bileşenleri için de işlevsellik bulunur. Özel bileşenleri entegre ederek Shiny uygulamanızı belirli kullanım senaryolarına uyarlayabilir ve daha kişiselleştirilmiş bir kullanıcı deneyimi yaratabilirsiniz.
Python için Shiny Uygulamanızı Yayınlama
Farklı yayınlama seçeneklerinin açıklanması
Etkileyici bir Shiny uygulaması oluşturduktan sonra, onu portföyünüz için ya da bir müşteri adına web’e yayınlayarak daha geniş bir kitleyle paylaşmak isteyebilirsiniz. Shiny, farklı ihtiyaçlara uygun çeşitli yayınlama seçeneklerini destekler.
Yerel Yayınlama: Shiny uygulamanızı yerel bir sunucuda yayınlayabilir ve kurumunuz içinde ya da belirli bir kullanıcı grubunun erişimine açabilirsiniz.
Bulut Tabanlı Platformlar: Bulut platformları, Shiny uygulamalarını yayınlamak için ölçeklenebilir ve erişilebilir çözümler sunar. Popüler seçenekler şunlardır:
Shinyapps.io: Shiny uygulamalarını barındırmaya özel olarak tasarlanmış, Posit’in kendi platformu.
Heroku: Shiny uygulaması yayınlamayı destekleyen bir bulut platformu.
AWS, Azure ve Google Cloud: Shiny uygulamalarını sanal makinelerde veya kapsayıcılarda yayınlamanıza olanak tanıyan başlıca bulut sağlayıcıları.
ShinyLive: Shiny, Python çalıştıran ayrı bir sunucu olmadan Shiny uygulamalarını bir web tarayıcısı içinde çalıştırmanın yeni bir yolunu sunar. WebAssembly ve pyodide-ı birleştirerek, bilgisayarınıza Python veya Shiny kurmadan Shiny uygulamalarını çalıştırmanıza olanak sağlar. Bu platform, kullanılabilir Python paketlerini sınırlar ve diğer platformlar kadar güvenli olmayabilir; ancak hassas olmayan kodu hızla paylaşmanın iyi bir yoludur.
Sonuç
Python için Shiny, web uygulama geliştirme sahnesinin heyecan verici yeni oyuncularından biridir. Kullanımı, web geliştirme öğrenmeye büyük zaman yatırımı yapmadan veri projenizi önemli ölçüde bir üst seviyeye taşıyabilir. R için Shiny’yi denemekle ilgileniyorsanız, DataCamp’in şu Shiny temelleri kursuna ve R Shiny ile pano yapmaya yönelik bu kursa göz atın. Temelleri oturttuktan sonra, bir Shiny vaka çalışması ile yeni becerilerinizi pratik edin!
Biyolojik araştırma ortamında verilerle çalışma konusunda 13 yıllık deneyime sahip bir doktora sahibiyim. Python, MATLAB ve R dahil olmak üzere birkaç programlama dilinde yazılım geliştiriyorum. Öğrenme sevgimi dünyayla paylaşma konusunda tutkuluyum.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Son derece etkileşimli web uygulamaları oluşturmak ve analizlerinizi gösterge tabloları ve görselleştirmeler olarak paylaşmak için popüler bir R paketi olan Shiny'yi nasıl kullanacağınızı öğrenin.
Shiny’ye Giriş ve Sağladığı Faydalar
R ile çalışma deneyimi olanlar, etkileşimli web uygulamaları oluşturmanıza olanak tanıyan Shiny paketini muhtemelen duymuştur. R Shiny 2012’de yayınlandı ve kullanımının kolay olduğu anlaşılınca, bilim insanların ve analistlerin daha etkileşimli modeller ve panolar oluşturabilmesine imkan sağladığı için talep hızla arttı.
2023’te, Python için Shiny alfa sürecinden çıktı ve Python dili için benzer, tepkisel (reactive) bir çerçeve sundu. Shiny, kapsamla web geliştirme becerilerine gerek kalmadan web tabanlı panolar ve uygulamalar oluşturmada sağladığı sadelik ve etkililikle bilinir.
Shiny nedir?
Shiny, R için ve yakın zamandaki geliştirmelerle Python için de kullanılabilen açık kaynaklı bir web uygulama çerçevesidir. Veri profesyonellerinin analizlerini etkileşimli web uygulamalarına dönüştürmesine olanak tanır. Shiny’nin çekirdeğinde, girdi değişikliklerinin (kaydırıçlar veya düğmeler gibi) çıktıları (grafikler veya tablolar gibi) otomatik olarak güncellediği tepkisel programlama kavramı yer alır.
Web tabanlı uygulamalar oluşturmak için Shiny çerçevesinin birçok faydası vardır. Shiny, tepkisel programlamadan yararlanarak kullanıcı girdilerine dinamik olarak yanıt veren uygulamalar oluşturmanıza olanak tanır; bu da daha ilgi çekici ve kişiselleştirilmiş bir deneyim yaratır. Shiny’nin kullanıcı dostu bir kütüphanesi ve kapsamlı dokümanları bulunur; böylece temel programlama bilgisi olanlar bile etkileşimli ve görsel açıdan çekici uygulamalar geliştirebilir. Python meraklıları için Shiny, Python’un zengin veri bilimi ekosistemi ile Shiny’nin web geliştirme yetenekleri arasında bir köprü sunar.
Shiny çerçevesinin değerli olacağı bazı örnekler şunlardır:
Not: R için Shiny ile Python için Shiny farklıdır. Altyapıdaki kavramlar benzer olsa da sözdizimi ve terimler birebir değiştirilebilir değil. R için Shiny kullanmayı biliyorsanız, Python için Shiny öğrenirken öne geçersiniz; ancak Python’a uyum sağlamak için yapılan farklılıkları yine de öğrenmeniz gerekir.
Shiny’nin diğer web uygulama çerçeveleriyle karşılaştırılması
Veri bilimi için web uygulama geliştirmeyi değerlendirirken, Shiny’nin diğer çerçevelere göre konumunu anlamak faydalıdır.
Shiny, benzersiz bir sadelik ve esneklik bileşimi sunar. Ancak Python sürümü, diğer çerçevelere kıyasla görece yenidir. Shiny, Python kodlama bilgisi olan herkes için web uygulamaları geliştirmeyi erişilebilir kılmak üzere tasarlanmıştır.
Ayrıca, kullanım kolaylığının yanı sıra ölçeklemeyi sorunsuz kılacak şekilde tasarlanmıştır; önbellekleme ve seçici tepkiselliği kullanarak tepkisel çerçevesini verimli tutar. Bu da ona bazı diğer web tasarım çerçevelerine göre avantaj sağlar. Bildirimsel sözdizimi ve tepkisel programlama modeli, kapsamla web geliştirme uzmanlığı olmadan da veri analistlerinin etkileşimli uygulamalar oluşturmasını mümkün kılar.
Buna karşın, Dash ve Streamlit gibi diğer çerçeveler farklı güçlü yanlar sunar. Dash, Python’a özgü sözdizimi kullanır ve hızlı geliştirmeyi ön plana çıkarır. Streamlit, otomatik oluşturma ile hızlı prototiplemede öne çıkar; ancak girdiler değiştiğinde tüm programı yeniden çalıştırır ve uygulamalar büyüdükçe verimsizlik yaratabilir. Flask ve Django, esneklik ve kontrol sağlayan genel amaçlı web çerçeveleridir; ancak genellikle daha fazla web geliştirme uzmanlığı gerektirir. Bunları öğrenmek ilginizi çekiyorsa, DataCamp’in Django eğiticisini okuyabilirsiniz.
Koda dayalı web geliştirme platformlarının yanı sıra, veri analistleri benzer pano oluşturma amaçları için Tableau ve Power BI’ı da kullanır. Bunlar, güçlü araçlar sunan veri görselleştirme platformlarıdır; ancak lisans maliyetleri vardır. Ayrıca bu programlar, saf koda kıyasla sınırlı analiz özelliklerine sahiptir ve çoğu karmaşık modelleme ve analizlerin başka yerde yapılmasını gerektirir. DataCamp’te Power BI hakkında daha fazla bilgi edinebilirsiniz.
Belirli bir veri bilimi uygulaması için en uygun çerçeveyi seçerken proje gereksinimlerini, dil tercihlerini ve özel özellik ihtiyaçlarını dikkate almak önemlidir. Diğer çerçeveler kendi güçlü yanlarını getirirken, Shiny’nin sadelik ve esnekliğin benzersiz karışımı ile Python entegrasyonu, veri bilimi projelerini yükseltmek isteyen herkes için onu cazip bir seçenek haline getirir.
Çerçeve
Ana Özellikler
Dil Desteği
Öğrenme Eğrisi
Kullanım Alanı
Shiny
Sadelik ve çok yönlülülülük
R, Python
Düşük
Etkileşimli uygulamalar ve görselleştirmeler
Dash
Python’a özgü sözdizimi
Python
Orta
Hafif web uygulamalarını hızlı geliştirme
Streamlit
Otomatik oluşturma ile hızlı prototipleme
Python
Düşük
Veri uygulamaları için hızlı prototipleme
Flask
Genel amaçlı web çerçevesi
Python
Orta ila Yüksek
Tam donanımlı web uygulamaları
Django
Yüksek seviyeli Python web çerçevesi
Python
Orta ila Yüksek
Ölçeklenebilir web uygulamaları ve hizmetler
Tableau/Power BI
Veri görselleştirme platformları
Uygulanamaz
Düşük
İş Zekâsı Görselıstirme
Geliştirme Ortamını Kurma
Python için Shiny’nin harika yanlarından biri, hiçbir şey indirip yüklemeden uygulamanızı oluşturabileceğiniz bir web düzenleyicisinin bulunmasıdır. Bu web düzenleyici, başlamanıza ve yeni Shiny uygulamanızı denemenize yardımcı olacak birçok uygulama ve işlevsellik örneğiyle birlikte gelir.
Ancak geliştirmenizin bir aşamasında, muhtemelen Shiny’yi yerel cihazınızda çalıştırmak isteyeceksiniz. Bu bölüm, Python ve Shiny’nin ve bunların bağımlılıklarının kurulumunun yanı sıra yerel ortamınızı sorunsuz çalışır hale getirmek için gerekli yapılandırmalar konusunda size rehberlik edecektir.
Python’ın kurulumu
Shiny ile çevrimdışı çalışmaya başlamak için bilgisayarınızda Python kurulu olmalıdır. Henüz Python kurmadıysanız, resmi Python web sitesini ziyaret edip python.org adresinden işletim sisteminize uygun en son sürümü indirin. Daha önceden Python kurduysanız, Shiny’nin doğru çalışmasını sağlamak için en yeni sürüme güncellemeyi öneririm.
İndirilen yükleyiciyi çalıştırın ve kurulum sürecinde "Add Python to PATH" kutucuğunu işaretleyin. Bu, komut satırından Python çalıştırmayı kolaylaştırır. Bir komut istemi veya terminal açın ve Python’un başarıyla kurulduğunu doğrulamak için python --version yazın. Sürüm numarasını görmelisiniz. Ayrıca, kolaydır diye Tümleşik Geliştirme Ortamı (IDE) de kurmayı tercih edebilirsiniz.
Shiny’nin kurulumu
Python ayarlandıktan sonra Shiny’yi kurabilirsiniz. En yeni Python sürümüne sahip olduğunuz sürece, bir komut istemi veya terminal açıp pip kullanarak Python için Shiny kütüphanesini kurmak için aşağıdaki komutu kullanabilmelisiniz:
pip yerine conda kullanıyorsanız, bunun yerine şu komutu kullanın:
Sistem yapılandırmanıza bağlı olarak Shiny’nin ek bağımlılıkları olabilir. Bu bağımlılıkların kurulduğundan Shiny dokümanlarındaki talimatları izleyerek emin olun.
Geliştirme ortamının yapılandırılması
Artık Python ve Shiny kurulduğuna göre, ele almanız gereken üç konu daha var.
Geliştirme ortamınız artık kurulu ve yapılandırılmış olduğuna göre, Python için Shiny ile etkileşimli web uygulamaları oluşturmaya hazırsınız.
Temel Bir Shiny Uygulaması Oluşturma
Bir Shiny uygulamasının yapısını anlama
Bir Shiny uygulaması iki ana bileşenden oluşur: kullanıcı arayüzü (UI) ve sunucu mantığı.
UI, uygulamanın nasıl görüneceğini ve kullanıcı etkileşimi için hangi öğelerin bulunduğunu tanımlar. Kullanıcının görebildiği veya etkileşime girebildiği her şey UI’ın parçasıdır; kaydırıçlar, düğmeler ve grafikler gibi öğeler buna dahildir.
UI, “ui.” ile başlayan işlevler kullanılarak oluşturulur; ui.input_numeric, ui.input_slider ve ui.output_text gibi. Bu işlevler, genellikle sayfanın temel yerleşimini tanımlayan ui.page_fluid gibi bir sayfa işlevi içine alınır.
Sunucu mantığı, uygulamanın nasıl davrandığını ve kullanıcı girdilerine nasıl yanıt verdiğini tanımlar. UI’dan gelen kullanıcı girdilerini alan, bunları işleyen ve buna göre çıktı öğelerini güncelleyen işlevlerden oluşur. Sunucu mantığı, server işlevi kullanılarak oluşturulur ve girdileri ve çıktıları yönetmek için tepkisel ifadeler içerir.
UI ve sunucu mantığı tanımlandıktan sonra, bunları tamamlanmış bir uygulamada birleştiririz ve bu uygulamanın adı mutlaka “app” olmalıdır.
Tepkisel programlama modelini anlama
Shiny dokümanlarından bu örneği ele alalım.
Bu örnek, kaydırıçtan gelen kullanıcı girdisini alır ve aşağıdaki metin kutusunda görüntülenen bir hesaplama yapmak için kullanır. Bu çok basit örnek, VS Code içinde yerel ana makinede basit bir tarayıcıda çalışıyor.
Bu basit gösterimden de görebileceğiniz gibi, Shiny’nin büyüsü etkileşimselliğinde yatar. Shiny’nin etkileşimselliğinin motoru, tepkisel programlama modelidir. Shiny’de, girdiler ve çıktılar arasında bağımlılık zinciri oluşturmak için tepkisel ifadeler tanımlarız. Bir girdi değiştiğinde, tüm bağımlı tepkisel ifadeler ve çıktılar otomatik olarak güncellenir. Bu tepkisellik, Shiny’nin özündedir. Shiny’nin tepkiselliği hakkında daha fazla ayrıntıyı buradan okuyabilirsiniz.
Bu tepkiselliği mümkün kılan bazı temel öğeler vardır.
Öncelikle, tepkisel hesaplama ya da
reactive.Calcvardır. Bu, bir girdiye dayalı bir hesaptır. Bu hesap, döndürdüğü değeri, girdi değişene kadar önbelleğinde tutar; girdi değiştiğinde ise yeni girdiye göre yeniden çalışır. Bu, uygulamanızın kullanıcı girdilerine verimli şekilde yanıt vermesini sağlar. Tepkisel hesaplamalar, aşağıdaki örnekte olduğu gibi @reactive.Calc süsleyicisini (decorator) kullanır.Bir diğer tepkisel öğe, tepkisel etkidir ya da
reactive.Effect. Tepkisel etki, çalıştığında bir değer döndürmez. Bunun yerine, bir değişkeni değiştirmek veya bir dosyayı kaydetmek gibi bir etki tetikler. Girdiler değiştiğinde de yeniden çalışır. En yaygın reactive.Effect, aşağıdaki örnekte olduğu gibi sonucun bir dizi olarak mesaj kuyruğuna eklenmesini sağlayan @output süsleyicisidir.Bazen, uygulamanızın tepkiselliğinin bu kadar anlık olmasını istemeyebilirsiniz. Örneğin, hesaplama açısından maliyetli bir modeliniz varsa, modeli yeniden çalıştırmadan önce birkaç parametrenin güncellenmesini beklemek isteyebilirsiniz. Bu durumda, reactive.event() veya reactive.isolate() ile uygulamanızın tepkiselliğini sınırlamak için seçenekler sunulur.
Shiny Uygulamanıza Etkileşimsellik Ekleme
Daha karmaşık bir uygulamaya ihtiyaç duyduğunuzda
Bu tepkisellik mantığıyla, Python için Shiny ihtiyacınız olduğu kadar karmaşık ya da basit uygulamalar oluşturabilir. Radyo düğmeleri, onay kutuları, kaydırıçlar, metin girişi kutuları, grafikler, haritalar ve çok daha fazlasını ekleyebilirsiniz! İşte Shiny dokümanlarından biraz daha karmaşık bir örnek.
Bu örnekte, bazı rastgele verilerin bir sıcaklık haritasını oluşturduk. Kullanıcının görüntülemek istediği sıcaklık haritası stilini seçmesi için bir radyo düğmesi seçeneği vardır ve kaydırıç işlevi, sıcaklık haritasındaki renk aralığını değiştirir. Shiny’yi oluşturan şirket olan Posit, web sitelerinde bu eğlenceli Wordle klonu dahil olmak üzere daha pek çok örnek sunuyor.
Bu tür etkileşimlilik eğlenceli olsa da birçok kullanışlı uygulaması da vardır. Tuzluluk ve sıcaklık gibi çevresel faktörleri alan ve bunları kullanarak yosun patlamalarını tahmin eden bir model tasarlayabilirsiniz. Sahadaki bir araştırmacı, geçerli değerleri Shiny uygulamanıza girebilir ve uygulama, araştırmacıya anlık bir tahmin sunar.
Belirli koşullar sağlanırsa yıllık kazç projeksiyonlarını gösteren bir model de tasarlayabilirsiniz. Bu durumda yöneticiler, farklı satış sayıları girerek veya hangi ürünleri sunduklarını işaretleyerek uygulamanızla farklı senaryoları deneyebilir ve tahmini sonucun gözlerinin önünde güncellendiğini görürler.
Kullanım alanları, birden çok sektöre yayılan sayısızdır.
Girdi ve çıktı türleri
Shiny, farklı veri görselleştirme ve etkileşim ihtiyaçlarına yönelik çeşitli girdi ve çıktı seçenekleri sunar. İşte Python için Shiny’de bulunan yaygın girdi ve çıktıların basit bir tablosu.
Girdiler
Ne iş yapar?
Eylem Düğmesi Girdisi
Kullanıcının seçmesi için bir düğme sağlar.
Eylem Bağlantısı Girdisi
Kullanıcının bir bağlantıya tıklamasına izin verir.
Metin girişi
Basit bir metin satırı için metin kutusu sağlar.
Sayısal giriş
Aşağı ve yukarı okları olan sayısal bir giriş kutusu sağlar.
Kaydırıç girişi
Sayısal bir kaydırıç oluşturur.
Onay kutusu girişi
Doğru/Yanlış uygulamaları için tek bir onay kutusu oluşturur.
Anahtar (switch) girişi
Tek bir açık/kapalı anahtar oluşturur.
Onay kutusu grubu girişi
Birden çok seçenek için birkaç onay kutusu oluşturur.
Seçim girişi
Açılır bir seçenek menüsü sağlar.
Radyo düğmeleri girişi
Tek seçimi zorunlu kılan radyo düğmesi seçenekleri oluşturur.
Metin alanı girişi
Daha uzun metin girdileri için boyutlandırılabilir büyük bir metin kutusu sağlar.
Tarih girişi
Kullanıcıların takvimden tarih seçebileceği bir tarih giriş kutusu oluşturur.
Tarih aralığı girişi
Temelde, bir aralık girilmesini sağlayan eşlemiş iki tarih giriş kutusudur.
Parola girişi
Giriş metnini gizleyen bir metin kutusu oluşturur.
——————————————————————————————————————
Çıktılar
Ne iş yapar?
Metin çıktısı
Düz HTML olarak metin yazar.
Aynen metin çıktısı
Metni sabit aralıklı bir kod bloğu içinde yazar.
UI çıktısı
Kullanıcı girdilerine dayalı daha dinamik bir arayüz sunar.
Grafik çıktısı
matplotlib gibi yaygın Python kütüphanelerini kullanarak bir grafik üretir.
Tablo çıktısı
Sütun başlıkları olan düz bir tablo oluşturur.
Veri Çerçevesi / Izgara çıktısı
Filtreler, izgara çizgileri ve satır sınırları ile özelleştirilebilir bir tablo oluşturur.
Shiny bileşenlerinin tam listesi için bu sayfaya göz atın.
Python için Shiny’de Kullanıcı Arayüzünü Özelleştirme
Yerleşimler ve temalar
Shiny, bir sayfa işlevi kullanarak çeşitli yerleşimler aracılığıyla kullanıcı arayüzünü özelleştirmede esneklik sunar. En sık kullanılan sayfa işlevi, farklı ekran boyutlarına uyarlanan duyarlı bir tasarım sağlayan page_fluid()'dır. Belirli tasarım gereksinimleri olan uygulamalar için uygun sabit geniişlikli bir yerleşim ise page_fixed() sayfa işlevi kullanılarak elde edilebilir.
Shiny, web tabanlı uygulamalarını oluşturmak için HTML’den yararlanır. Bu da CSS temalarını kullanarak uygulamanızı stillendirebileceğiniz anlamına gelir. Özel CSS stili eklemek, Shiny uygulamanızın görünümünü estetik tercihlerinizle ya da kurumsal markanızla uyumlu hale getirmenize olanak tanır. Top of Form
Özel bileşen ve uzantıların uygulanması
Shiny, ipywidgets’ı destekler ve çeşitli etkileşimli grafikler, haritalar, 3B görselleştirmeler ve medya akışı sağlar. Ayrıca, HTML dosyası olarak kaydedilebilen bazı diğer Python bileşenleri için de işlevsellik bulunur. Özel bileşenleri entegre ederek Shiny uygulamanızı belirli kullanım senaryolarına uyarlayabilir ve daha kişiselleştirilmiş bir kullanıcı deneyimi yaratabilirsiniz.
Python için Shiny Uygulamanızı Yayınlama
Farklı yayınlama seçeneklerinin açıklanması
Etkileyici bir Shiny uygulaması oluşturduktan sonra, onu portföyünüz için ya da bir müşteri adına web’e yayınlayarak daha geniş bir kitleyle paylaşmak isteyebilirsiniz. Shiny, farklı ihtiyaçlara uygun çeşitli yayınlama seçeneklerini destekler.
Yerel Yayınlama: Shiny uygulamanızı yerel bir sunucuda yayınlayabilir ve kurumunuz içinde ya da belirli bir kullanıcı grubunun erişimine açabilirsiniz.
Bulut Tabanlı Platformlar: Bulut platformları, Shiny uygulamalarını yayınlamak için ölçeklenebilir ve erişilebilir çözümler sunar. Popüler seçenekler şunlardır:
ShinyLive: Shiny, Python çalıştıran ayrı bir sunucu olmadan Shiny uygulamalarını bir web tarayıcısı içinde çalıştırmanın yeni bir yolunu sunar. WebAssembly ve pyodide-ı birleştirerek, bilgisayarınıza Python veya Shiny kurmadan Shiny uygulamalarını çalıştırmanıza olanak sağlar. Bu platform, kullanılabilir Python paketlerini sınırlar ve diğer platformlar kadar güvenli olmayabilir; ancak hassas olmayan kodu hızla paylaşmanın iyi bir yoludur.
Sonuç
Python için Shiny, web uygulama geliştirme sahnesinin heyecan verici yeni oyuncularından biridir. Kullanımı, web geliştirme öğrenmeye büyük zaman yatırımı yapmadan veri projenizi önemli ölçüde bir üst seviyeye taşıyabilir. R için Shiny’yi denemekle ilgileniyorsanız, DataCamp’in şu Shiny temelleri kursuna ve R Shiny ile pano yapmaya yönelik bu kursa göz atın. Temelleri oturttuktan sonra, bir Shiny vaka çalışması ile yeni becerilerinizi pratik edin!