Документация Engee

События графика

График может реагировать на события, связанные с мышью.

Для регистрации событий щелчка мышью по графику используйте инструкцию @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