
Construit au-dessus de Plotly.js, React et http.jl, Dash lie les éléments d'interface utilisateur modernes comme les caliilles, les curseurs et les graphiques directement à votre code analytique Julia.
Je commence juste? Consultez le guide de l'utilisateur de Dash for Julia! Si vous ne trouvez pas de documentation là-bas, consultez les exemples non officiels contribués ou consultez le code source à partir des applications de démonstration dans Python, puis référez le style de syntaxe Julia.
Les composants Julia peuvent être générés en tandem avec des composants Python et R. Vous souhaitez vous impliquer dans le projet? Le parrainage est un excellent moyen d'accélérer les progrès de projets open source comme celui-ci; N'hésitez pas à nous contacter!
Pour installer la dernière version publiée:
pkg > add DashPour installer la dernière version de développement (stable) à la place:
pkg > add Dash # dev using Dash
app = dash (external_stylesheets = [ " https://codepen.io/chriddyp/pen/bWLwgP.css " ])
app . layout = html_div () do
html_h1 ( " Hello Dash " ),
html_div ( " Dash.jl: Julia interface for Dash " ),
dcc_graph (id = " example-graph " ,
figure = (
data = [
(x = [ 1 , 2 , 3 ], y = [ 4 , 1 , 2 ], type = " bar " , name = " SF " ),
(x = [ 1 , 2 , 3 ], y = [ 2 , 4 , 5 ], type = " bar " , name = " Montréal " ),
],
layout = (title = " Dash Data Visualization " ,)
))
end
run_server (app) Ensuite, allez sur http://127.0.0.1:8050 dans votre navigateur pour afficher l'application Dash!
using Dash
app = dash (external_stylesheets = [ " https://codepen.io/chriddyp/pen/bWLwgP.css " ])
app . layout = html_div () do
dcc_input (id = " my-id " , value = " initial value " , type = " text " ),
html_div (id = " my-div " )
end
callback! (app, Output ( " my-div " , " children " ), Input ( " my-id " , " value " )) do input_value
" You've entered $(input_value) "
end
run_server (app)callback! fonction.Output , Input , objets State ou splates / vecteurs de ces objets.(inputs..., states...) et fournir une valeur de retour avec les mêmes éléments de nombre que le nombre de Output à mettre à jour. using Dash
app = dash (external_stylesheets = [ " https://codepen.io/chriddyp/pen/bWLwgP.css " ])
app . layout = html_div () do
dcc_input (id = " my-id " , value = " initial value " , type = " text " ),
html_div (id = " my-div " ),
html_div (id = " my-div2 " )
end
callback! (app,
Output ( " my-div " , " children " ),
Output ( " my-div2 " , " children " ),
Input ( " my-id " , " value " ),
State ( " my-id " , " type " )) do input_value, state_value
return ( " You've entered $(input_value) in input with type $(state_value) " ,
" You've entered $(input_value) " )
end
run_server (app) import dash
dash . html . Div
dash . dcc . Graph
dash . dash_table . DataTable using Dash
html_div
dcc_graph
dash_datatable Tout comme dans Python, les fonctions pour déclarer les composants ont des arguments de mots clés, qui sont les mêmes que dans Python. html_div(id = "my-id", children = "Simple text") .
Pour les composants qui déclarent children , deux signatures supplémentaires sont disponibles:
(children; kwargs..) et(children_maker::Function; kwargs...) Ainsi, on peut écrire html_div("Simple text", id = "my-id") pour des éléments simples, ou choisir une syntaxe abrégée avec une syntaxe do pour des éléments complexes:
html_div (id = " outer-div " ) do
html_h1 ( " Welcome " ),
html_div (id = " inner-div " ) do
#= inner content =#
end
end app = dash . Dash ( external_stylesheets = [ "https://codepen.io/chriddyp/pen/bWLwgP.css" ])
app . layout = html . Div ( children = [....])app = dash (external_stylesheets = [ " https://codepen.io/chriddyp/pen/bWLwgP.css " ])
app . layout = html_div () do
#= inner content =#
end @ app . callback ( Output ( 'output' , 'children' ),
Input ( 'submit-button' , 'n_clicks' )],
State ( 'state-1' , 'value' ),
State ( 'state-2' , 'value' ))
def update_output ( n_clicks , state1 , state2 ):
# logic callback! (app,
Output ( " output " , " children " ),
Input ( " submit-button " , " n_clicks " )],
State ( " state-1 " , " value " ),
State ( " state-2 " , " value " )) do n_clicks, state1, state2
# logic
endLes applications DASH transfèrent les données entre le navigateur (alias le frontend) et le processus Julia exécutant l'application (alias le backend) dans JSON. Dash.jl utilise JSON3.jl pour la sérialisation / désérialisation JSON.
Notez que JSON3.jl convertit
Vector S et Tuple S aux tableaux JSONDict s et NamedTuple s aux objets JSON