Dash.jl
Version 1.5.0

建立在plotly.js,react和http.jl之上,破折號將現代的UI元素(如下拉列表,滑塊和圖形)直接與您的分析朱莉婭代碼直接相關。
剛開始?查看朱莉婭用戶指南的破折號!如果您在那裡找不到文檔,請查看非官方的貢獻示例或查看Python中的演示應用程序的源代碼,然後參考Julia Syntax樣式。
可以與Python和R組件同時生成Julia組件。有興趣參與該項目嗎?贊助是加速這樣的開源項目進度的好方法。請隨時與我們聯繫!
要安裝最近發布的版本:
pkg > add Dash改用最新(穩定)開發版本:
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)然後在瀏覽器中訪問http://127.0.0.1:8050 ,以查看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!功能。Input , State對像或媒介可以Output ,輸出和輸入(及狀態,請參見下文)。(inputs..., states...) ,並提供一個返回值,其數字元素與要更新的Output數量相同。 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就像在Python中一樣,聲明組件的函數具有關鍵字參數,與Python相同。 html_div(id = "my-id", children = "Simple text") 。
對於宣布children組件,還有兩個額外的簽名:
(children; kwargs..)和(children_maker::Function; kwargs...)因此,可以為簡單元素編寫html_div("Simple text", id = "my-id") ,或者使用do語法選擇複雜元素的縮寫語法:
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
end破折號應用程序在JSON中運行該應用程序(又稱後端)的瀏覽器(又稱前端)之間傳輸數據。 Dash.jl使用JSON3.JL進行JSON序列化/避難所化。
請注意json3.jl轉換
Vector S和Tuple組到JSON陣列Dict s and NamedTuple為json對象