Taslak bir satış kontrol paneli
E-ticaret şirketiyle şimdiye kadar yaptığın harika işler sayesinde, senden mevcut kontrol panellerini tamamen değiştirmene yardımcı olmanı istediler. Mevcut paneller tescilli yazılım gerektiriyor ve kuruma her ay yüklü miktarda para kaybettiriyor.
Bu nihai ürün olmayacak; Dash ile nelerin mümkün olduğuna dair kaba bir taslak istiyorlar. Her ayın toplam satışlarının bir çizgi grafiğini ve her ülkedeki toplam satışların bir çubuk grafiğini görmek istiyorlar. Ayrıca, en yüksek sipariş hacmine sahip ay gibi üst düzey bir özet istatistiği eklemek de iyi olur.
Görevin, üst üste yerleştirilmiş Plotly grafiklerini kullanarak hızlı bir kontrol paneli oluşturmak.
Bu egzersiz
Dash ve Plotly ile Paneller Oluşturma
kursunun bir parçasıdırEgzersiz talimatları
14. satırda bir Dash düzeni (layout) kur.17. satıraline_figdeğişkenini ekle.19. satırabar_figdeğişkenini ekle.- En yüksek toplam satışa sahip ülkeyi gösteren
max_countryile bir.H3()başlığı ekle.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
from dash import Dash, dcc, html
import pandas as pd
import plotly.express as px
ecom_sales = pd.read_csv('/usr/local/share/datasets/ecom_sales.csv')
ecom_line = ecom_sales.groupby('Year-Month')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
line_fig = px.line(data_frame=ecom_line, x='Year-Month', y='Total Sales ($)', title='Total Sales by Month')
ecom_bar = ecom_sales.groupby('Country')['OrderValue'].agg('sum').reset_index(name='Total Sales ($)')
max_country = ecom_bar.sort_values(by='Total Sales ($)', ascending=False).loc[0]['Country']
bar_fig = px.bar(data_frame=ecom_bar, x='Total Sales ($)', y='Country', orientation='h', title='Total Sales by Country')
app = Dash()
# Set up the layout
app.____ = [
html.H1('Sales Figures'),
# Add the line figure
dcc.___(id='my-line-fig', figure=____),
# Add the bar figure
dcc.___(id='my-bar-fig', figure=____),
# Add the H3 title
html.____(f'The largest country by sales was {____}!')
]
if __name__ == '__main__':
app.run(debug=True)