События графика
График может реагировать на события, связанные с мышью.
Для регистрации событий щелчка мышью по графику используйте инструкцию @mounted watchplots(). При загрузке страницы будет выполняться инструкция watchplots(), которая генерирует код и переменные словаря во фронтенде для регистрации событий щелчка мышью. Эти словари имеют следующие имена, и в них помещается следующая информация:
Чтобы сделать эти переменные доступными из кода Julia, определите входные переменные с пометкой @in и теми же именами. После этого их содержимое можно будет отслеживать с помощью блока @onchange.
module App
using GenieFramework, PlotlyBase, StipplePlotly
@genietools
trace1 = scatter(; x=1:4, y=[0, 2, 3, 5], fill="tozeroy")
trace2 = scatter(; x=1:4, y=[3, 5, 1, 7], fill="tonexty")
@app begin
@out traces = [trace1, trace2]
@out plotlayout = PlotlyBase.Layout(title="Filled line chart")
@in data_click = Dict{String,Any}()
@in data_hover = Dict{String,Any}()
@in data_selected = Dict{String,Any}()
@in data_cursor = Dict{String,Any}()
@in data_relayout = Dict{String,Any}()
@onchange data_click begin
@show data_click
end
@onchange data_hover begin
@show data_hover
end
@onchange data_selected begin
@show data_selected
end
@onchange data_cursor begin
@show data_cursor
end
@onchange data_relayout begin
@show data_relayout
end
end
@mounted watchplots()
ui() = plot(:traces, layout=:plotlayout, class="sync_data")
@page("/", ui)
Server.isrunning() || Server.up()
end