-
Notifications
You must be signed in to change notification settings - Fork 0
/
InterfazUsuario.py
executable file
·81 lines (63 loc) · 3.4 KB
/
InterfazUsuario.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
""" Interfaz de Usuario Interactiva con Dash
curso-Dash-aprender-python
Objetivo del 2º tutorial de Curso de Dash en Python
-Aprenderemos a realizar importaciones de entrada y salida.
-Ver un código para crear una función de ejemplo.
Bienvenido a la segunda parte de la serie de tutoriales Dash en python para crear interfaces de usuario interactivas de
visualización de datos. En este tutorial, vamos a cubrir la interactividad de la interfaz de usuario con un ejemplo de entrada
de texto. Este ejemplo es muy parecido al que puede encontrar en la guía del usuario de Dash.
Crear interfaces de usuario interactivas con Dash
Para empezar, hagamos algunas importaciones:
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
Lo nuevo aquí son las importaciones de Input (entrada) y Output (salida), que usaremos envolviendo una función que se encargará de
la entrada y salida. Dash usará React en segundo plano para que podamos trabajar con estas entradas y salidas en directo.
Nuestro diseño será simple: tener un campo de entrada y luego un campo de salida. Por ahora, tomemos la entrada y repitámosla como
salida.
app = dash.Dash()
app.layout = html.Div([
dcc.Input(id='input', value='Escribe algo aqui!', type='text'),
html.Div(id='output')
])
A continuación, crearemos la función que produce lo que queramos basándonos en la entrada. En este caso, sólo será un texto simple,
pero también podríamos tener una salida de datos gráficos basados en alguna entrada…etc. Vamos a usar el siguiente decorador para
envolver esta función y determinar a qué corresponden las entradas y salidas:
@app.callback(
Output(component_id='output', component_property='children'),
[Input(component_id='input', component_property='value')]
)
Para continuar vamos a crear la función:
@app.callback(
Output(component_id='output', component_property='children'),
[Input(component_id='input', component_property='value')]
)
def update_value(input_data):
return 'Input: "{}"'.format(input_data)
Simple por ahora, pero podrías imaginarte cómo podríamos hacer esto más interesante y bastante rápido. Por ejemplo, podríamos estar
usando Quandl, esperando un símbolo válido (evaluando la validez ya sea por expresiones regulares o intentando tirar hasta que algo
es realmente devuelto) para algún conjunto de datos, una vez válido, devolver el marco de datos, tal vez en forma de tabla, o
incluso un gráfico.
Código completo de la interface de usuario interactivas con Dash"""
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div([
dcc.Input(id='input', value='Escribe algo aqui!', type='text'),
html.Div(id='output')
])
@app.callback(
Output(component_id='output', component_property='children'),
[Input(component_id='input', component_property='value')]
)
def update_value(input_data):
return 'Input: "{}"'.format(input_data)
if __name__ == '__main__':
app.run_server(debug=True)
"""Ahora ejecutando todo el código deberíamos ver:
curso-Dash-aprender-python
¿Recuerdas lo que dije antes sobre usar Dash para graficar dinámicamente algo basado en un símbolo? Pues lo hacemos en el próximo
tutorial."""