Python ve Dash ile Veri Görüntüleme Uygulaması Geliştirme

Bu konuyu okuyanlar

eymenbex

Öğrenci
Katılım
8 Ağustos 2018
Mesajlar
51
Reaksiyon puanı
15
Puanları
8
Öncelikle bugüne kadar grafiksel uygulamalarımızda Matplotlib kütüphanesinden faydalanmıştık.Bugün ise GUI işlemlerimize farklı bir boyut kazandıran, plotly(https://plot.ly/)ürünü olan dash componentinden faydalanıyor olacağız.

Dash, React ve Flask componentlerini içeren web tabanlı veri görüntüleme modülüdür.

Örnek Uygulama :

Geliştirme ortamı : Pardus 5.0 Kurumsal KDE Pc

Editör : Visual Studio Code

Uygulamamıza başlamadan önce dash, dash-renderer, dash-html-components, dash-core-components, and plotly paketlerini kurmamız gerekecektir. Terminalimizi açıp aşağıdaki komutu giriyoruz.

sudo pip install dash dash-renderer dash-html-components dash-core-components plotly

windows ortamında :

pip install dash dash-renderer dash-html-components dash-core-components plotly

Şimdi basit bir uygulamayla Dash’i statik ve dinamik veriler ile inceleyelim. Visual Studio Code editörümüzde yeni bir dosya oluşturup adını dashornek.py verelim

Şimdi örnek uygulamamızda dash kütüphanesi , dash componentlerini ve html componentlerini (div vb. ) import edelim.

import dash
import dash_core_components as dcc
import dash_html_components as html

uygulamamıza başlayalım.

p = dash.Dash()

layout oluşturalım.

app.layout = html.Div('Dash örnek Uygulama')

ve çalıştıralım

if __name__ =='__main__':
app.run_server (debug= True)

terminalimize gelip uygulamamızı çalıştıralım

> python dashornek.py

konsol çıktısı aşağıdaki gibi olacaktır.

* Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 297-593-635

web tarayıcımızdan 127.0.0.1:8050 adresine gittiğimizde uygulamamızın çalıştığını göreceğiz.



1_WSMMrpG3aYW7U1Ktuxzndg.png.e9d7c369d0535580f8cb6b31e3441ff0.png






şimdi statik veriler ile bir grafik çıktısı(çizgi-bar grafik) oluşturalım

import dash
import dash_core_components as dcc
import dash_html_components as html

app = dash.Dash()

app.layout = html.Div(children=[
html.H1(children='Dash Tutorials'),
dcc.Graph( id='ornek',
figure={
'data': [
{'x': [1, 2, 3, 4, 5], 'y': [9, 6, 2, 1, 5], 'type': 'line', 'name': 'cizgi'},
{'x': [1, 2, 3, 4, 5], 'y': [8, 7, 2, 7, 3], 'type': 'bar', 'name': 'bar'},
],
'layout': {
'title': 'basit dash ornek '
}
})
])

if __name__ == '__main__':
app.run_server(debug=True)






1_fRLsCyv1OF7G9xFja_B-Yg.thumb.png.3881414a8ea3e03be16445599210d835.png



Dışarıdan verilerle çalışma:

Bu uygulamamızda kendi girdiğimiz veriler ile değil, bir bitcoin borsasının apisinde alacağımız btc değerlerinin son 7 günlük ya da 30 günlük ortalama dolar bazında değerlerini alıp, grafiksel çıktı üreteceğiz.

İlk önce btc verilerini çekeceğimiz uygulamamızı yazalım



import json
import urllib2

class btcVeriAl():

def __init__(self):
print 'veriler aliniyor'

def DegerDondur(self):
req = urllib2.Request('https://blockchain.info/charts/market-price?timespan=30days&format=json')
opener = urllib2.build_opener()
f = opener.open(req)
jsonCikti = json.loads(f.read())
degerler = []
btc_value = []
for item in jsonCikti['values']:
degerler.append(item)

for a in degerler:
btc_value.append(a['y'])


return btc_value
def xEkseniOlustur(self):
xDegerler = []
for a in range (1,31):
xDegerler.append(a)
return xDegerler



uygulamamızı bitcoin.py olarak kaydedelim ve dash uygulamamız içerisinden import edelim

Şimdi geldi sıra dashboard işlemlerini yapacağımız uygulamamızı yazmaya

# -*- coding:utf- 8 -*-

import dash
import dash_core_components as dcc
import dash_html_components as html
import bitcoin as btc

btc = btc.btcVeriAl()
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Dash uygulama'),
dcc.Graph(
id='dashornek',
figure={
'data': [
{'x':btc.xEkseniOlustur() , 'y': btc.DegerDondur(), 'type': 'line', 'name': 'Bitcoin'},

],
'layout': {
'title': 'dash örnek uygulama btc/USD endeks'
}
}
)
])

if __name__ =='__main__':
app.run_server (debug= True)



Bitcoin uygulamamızı, import edebilmemiz için package dizinimiz olan /usr/local/lib/ python2.7/dist-packages dizini altına kopyalıyoruz.

Uygulamamızda verileri aldığımız web sitesinden 30 günlük verileri çektik. 30 gün verisini x ekseni, gün gün btc ortalama değerlerini ise y ekseninde tutuyoruz . x ekseni 1'den 30'a kadar değer aldı . Y ekseni değerlerini ise bitcoin uygulamamızın veridondur() metodu ile alıyoruz. Bu method geriye ortalama btc değerlerini içeren bir liste döndürüyor.

Konsoldan uygulamamızı çalıştıralım

1_YY2h5VBvIgpv4biylxVA4A.png.5d45125fcf5621e77b567726f865adcc.png




Hepsi bu kadar. Uygulama kaynak kodları şuracıkta farcompen/Python-Dash

Beğendiyseniz yıldızlamayı unutmayın

Sağlıcakla

- - - - - - - - - -





1_WSMMrpG3aYW7U1Ktuxzndg.png.a18fa34747cfba11121f0a315715d6be.png



kaynak kodevreni
 
Üst