Построение графиков разных типов, которые меняются в разбивочном меню с использованием штрих-графика. - PullRequest
0 голосов
/ 03 октября 2019

Я не могу сделать сложную диаграмму с изменением выпадающего меню по графику и как проще всего сделать диаграмму другого типа с помощью графика

, поэтому мне нужно в целом, как нарисовать разбросанную диаграмму, тепловую карту .... и т. д. с изменением выпадающего меню в сюжете

, но здесь и сейчас требуется специальный вопрос, который появился в этом вопросе, как показано ниже, поэтому, пожалуйста, помогите по этому вопросу и помогите мне по вышеуказанным запросам даже по ссылкам

Необходимо: создать гистограмму с накоплением, когда я выбираю NW с легендой df_N ['Traffic_Source']

import dash
import dash_core_components as dcc
import plotly.plotly as py
import plotly.graph_objs as go
import dash_html_components as html
import pyodbc
import pandas as pd
conn = pyodbc.connect('DRIVER={SQL 
Server};SERVER=Mohamed_eldessoky;DATABASE=CDR_Traffic;UID=islam.swidan;PWD=123456789')
cursor = conn.cursor()
cursor.execute("SELECT [DATE_ID],[Traffic Source] AS Traffic_Source,SUM([Downlink_Traffic_Bytes]+ 
[Uplink_Traffic_Bytes])/1024/1024/1024/1024 AS PS_Traffic FROM [dbo].[DATA] WHERE 
[DATE_ID]>getdate()-50 AND [Traffic Source] IN ('X1','X2','X3','X4') GROUP BY [DATE_ID],[Traffic 
Source]")
data = cursor.fetchall()
Date_ID=[]
Traffic_Source = []
PS_Traffic_TB=[]
for x in data:
    Date_ID.append(x.DATE_ID)
    Traffic_Source.append(x.Traffic_Source)
    PS_Traffic_TB.append(x.PS_Traffic)
df_N = pd.DataFrame({'Date_ID' : 
Date_ID,'Traffic_Source':Traffic_Source,'PS_Traffic_TB':PS_Traffic_TB})
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash()
app.layout = html.Div(children = [
html.H1(children = ['Network Dashboard'],style = {'textAlign': 'center','color':'#000000'})
H2(children=['Area level'])
,dcc.Dropdown(id='Area-Dropdown',options=[{'label':'Cairo','value':'CAI'},{'label': 'Alex', 'value': 
'ALX'},{'label': 'Sinai', 'value': 'SIN'},{'label': 'Upper', 'value': 'UPP'},{'label': 'Delta', 
'value': 'DEL'},{'label': 'Network', 'value': 'NW'}],value='CAI')
,dcc.Graph(id='graph',config={'showSendToCloud': True,'plotlyServerURL': 'https://plot.ly'})
],style = {'backgroundColor':'#FFB3FF'}
## globalized style from html.Div
)


@app.callback(
dash.dependencies.Output('graph', 'figure'),
[dash.dependencies.Input('Area-Dropdown', 'value')])
def update_output(value):

x_array_dict = {
    'CAI': [4,2,3],
    'ALX': [1,2,4],
    'SIN': [5,3,6],
    'DEL':[1,1,1],
    'UPP':[0,0,0],
    'NW' : df_N['Date_ID']
}


y_array_dict = {
    'CAI': [4,2,3],
    'ALX': [1,2,4],
    'SIN': [5,3,6],
    'DEL':[1,1,1],
    'UPP':[0,0,0],
    'NW' : df_N['PS_Traffic_TB']
}

return {
    'data': [{
        'type': 'bar',
        'x': x_array_dict[value],
        'y': y_array_dict[value],
        'marker' : Traffic_Source,
        "visible": True, 
        "showlegend": True,


    }],

    #layout = go.layout(title = 'PS_Traffic',barmode='stack')
    'layout': {
        'title': value


    }
}

, если name == ' main ': app. run_server (dev_tools_hot_reload = True, отлаживать = True)

...