
สร้างขึ้นบน Plotly.js, React และ http.jl, Dash เชื่อมโยงองค์ประกอบ UI ที่ทันสมัยเช่นดรอปดาวน์ตัวเลื่อนและกราฟโดยตรงกับรหัส Julia เชิงวิเคราะห์ของคุณ
เพิ่งเริ่มต้น? ตรวจสอบคู่มือผู้ใช้ Julia! หากคุณไม่พบเอกสารที่นั่นให้ตรวจสอบตัวอย่างที่ไม่เป็นทางการหรือตรวจสอบซอร์สโค้ดจากแอปพลิเคชันตัวอย่างใน Python จากนั้นอ้างอิงสไตล์ Julia Syntax
ส่วนประกอบของจูเลียสามารถสร้างขึ้นควบคู่กับส่วนประกอบ Python และ R สนใจที่จะมีส่วนร่วมกับโครงการหรือไม่? การสนับสนุนเป็นวิธีที่ยอดเยี่ยมในการเร่งความคืบหน้าของโครงการโอเพ่นซอร์สเช่นนี้ โปรดอย่าลังเลที่จะติดต่อเรา!
ในการติดตั้งเวอร์ชันที่เพิ่งเปิดตัวล่าสุด:
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! การทำงาน.Output Input วัตถุ State หรือ splats / เวกเตอร์ของวัตถุนี้(inputs..., states...) และให้ค่าส่งคืนที่มีองค์ประกอบหมายเลขเดียวกันกับจำนวน Output S เพื่ออัปเดต 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แอพพลิเคชั่น Dash ถ่ายโอนข้อมูลระหว่างเบราว์เซอร์ (AKA ส่วนหน้า) และกระบวนการ Julia ที่เรียกใช้แอพ (aka แบ็กเอนด์) ใน JSON dash.jl ใช้ JSON3.JL สำหรับการจัดลำดับ JSON/deserialization
โปรดทราบว่า JSON3.JL แปลง
Vector S และ Tuple S to JSON ArraysDict S และ NamedTuple S ถึงวัตถุ JSON