# Need a simple backend for plots inside pluto that support click event when plotting implicit equations

**URL:** <https://discourse.julialang.org/t/need-a-simple-backend-for-plots-inside-pluto-that-support-click-event-when-plotting-implicit-equations/107862>\
**Category:** Visualization\
**Tags:** plots, pluto, plotlyjs\
**Created:** [December 20, 2023, 2:31pm UTC](https://discourse.julialang.org/t/need-a-simple-backend-for-plots-inside-pluto-that-support-click-event-when-plotting-implicit-equations/107862 "2023-12-20T14:31:22Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![hisacro](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hisacro/32/202631_2.png) [@hisacro](https://discourse.julialang.org/u/hisacro)\
**Post date:** [December 20, 2023, 2:31pm UTC](https://discourse.julialang.org/t/need-a-simple-backend-for-plots-inside-pluto-that-support-click-event-when-plotting-implicit-equations/107862/1 "2023-12-20T14:31:22Z")

</div>

hello I want to get coordinates of implicit equations plot and pass it to a function, I have found `using plots; plotlyjs()` can do this but it doesn’t work inside pluto.

Currently I use plotly backend and it gives a pop up of coordinates is there any documentation of the api to get that coordinates

```julia
using ImplicitPlots, Plots ; plotly()

begin
f(x,y) = x^2+y^2-3*y
plot([1,2,3],[1.5,2,1])
implicit_plot!(f; xlims=(-2,2), ylims=(-2,2), lab="f(x) = 0")
end

```

now by clicking on the line I want coordinates to pop as output in

something like

```julia
listen_to_click(point)
@show point;

```

none of the solutions listed here [Plots and click events - #7 by jd-foster](https://discourse.julialang.org/t/plots-and-click-events/104253/7) works since implicit\_plot is specific to Plots.ji

---

<div class="post-metadata">

**Author:** ![disberd](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@disberd](https://discourse.julialang.org/u/disberd)\
**Post date:** [December 27, 2023, 10:32am UTC](https://discourse.julialang.org/t/need-a-simple-backend-for-plots-inside-pluto-that-support-click-event-when-plotting-implicit-equations/107862/2 "2023-12-27T10:32:19Z")

</div>

Hi @hisacro,

Unfortunately the ImplicitPlots package is specifically made for Plots.jl and from a quick look I do not think it is possible to make it work nicely with Plotly packages directly without rewriting it.

You can directly plot the desired function in any of the Plotly based packages (e.g. PlutoPlotly, PlotlyBase, PlotlyLight, PlotlyJS) but the synthax for customizing the plot is quite different from the Plots.jl API.

Here you find an example notebook that redefines a simplified version of the `implicit` recipe in the ImplicitPlots package to work with the PlotlyBase synthax.  
This function generates the full plot directly as the Plots recipes do not match 1 on 1 with something in the Plotly ecosystem.

> **Pluto Notebook**
>
> ```julia
> ### A Pluto.jl notebook ###
> # v0.19.35
> 
> using Markdown
> using InteractiveUtils
> 
> # This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error).
> macro bind(def, element)
> quote
> local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end
> local el = $(esc(element))
> global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el)
> el
> end
> end
> 
> # ╔═╡ 1ae23a34-a49b-11ee-1deb-dbdf759ba6b2
> using ImplicitPlots, PlutoPlotly, HypertextLiteral
> 
> # ╔═╡ af65752e-62fa-410b-9d39-eb45b877bf69
> using ImplicitPlots.Contour
> 
> # ╔═╡ 8d689808-d40d-4267-87d7-b6284520fed5
> function plot_implicit(f::ImplicitFunction{2}; resolution = 400, lab = "", kwargs...)
> # We keep this names but plotly does not use the name xlims or ylims for specifing axes limits. It uses the xaxis_range and yaxis_range ones
> xlims = get(kwargs, :xlims, (-5.0, 5.0))
> ylims = get(kwargs, :ylims, xlims)
> 
> l = Layout(; template = "none", kwargs...)
> l.xaxis_range = xlims
> 
> # We default to equal axis ratio and we set ylims
> l.yaxis = attr(;
> range = ylims,
> scaleanchor = "x",
> scaleratio = 1,
> )
> 
> rx = range(xlims[1]; stop = xlims[2], length = resolution)
> ry = range(ylims[1]; stop = ylims[2], length = resolution)
> z = [f(x, y) for x in rx, y in ry]
> 
> lvl = Contour.contour(collect(rx), collect(ry), z, 0.0)
> lines = Contour.lines(lvl)
> 
> clr = "dodgerblue"
> data = map(enumerate(lines)) do (k, line)
> xs, ys = Contour.coordinates(line)
> scatter(;
> line = attr(;width = 1, color = clr),
> showlegend = k == 1,
> name = k > 1 ? "" : lab,
> x = xs,
> y = ys,
> )
> end
> plot(data,l)
> end
> 
> # ╔═╡ ac759b72-88ae-49ce-9fbb-4bf9f439029c
> let
> f(x,y) = x^2+y^2-3*y
> p = plot_implicit(ImplicitFunction(f); xlims = (-2,2), lab = "f(x) = 0")
> add_plotly_listener!(p, "plotly_click", "
> (e) => {
> let dt = e.points[0]
> PLOT.value = [dt.x, dt.y]
> PLOT.dispatchEvent(new CustomEvent('input'))
> }
> ")
> @bind point p
> end
> 
> # ╔═╡ 770169d4-c7df-44f8-a8e6-df08de3497b7
> point
> 
> # ╔═╡ 00000000-0000-0000-0000-000000000001
> PLUTO_PROJECT_TOML_CONTENTS = """
> [deps]
> HypertextLiteral = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2"
> ImplicitPlots = "55ecb840-b828-11e9-1645-43f4a9f9ace7"
> PlutoPlotly = "8e989ff0-3d88-8e9f-f020-2b208a939ff0"
> 
> [compat]
> HypertextLiteral = "~0.9.5"
> ImplicitPlots = "~0.2.3"
> PlutoPlotly = "~0.4.4"
> """
> 
> # ╔═╡ 00000000-0000-0000-0000-000000000002
> PLUTO_MANIFEST_TOML_CONTENTS = """
> # This file is machine-generated - editing it directly is not advised
> 
> julia_version = "1.10.0-rc2"
> manifest_format = "2.0"
> project_hash = "dcf6f36275fdb779a9588f87d3c966fc9ee18d4e"
> 
> [[deps.AbstractPlutoDingetjes]]
> deps = ["Pkg"]
> git-tree-sha1 = "793501dcd3fa7ce8d375a2c878dca2296232686e"
> uuid = "6e696c72-6542-2067-7265-42206c756150"
> version = "1.2.2"
> 
> [[deps.ArgTools]]
> uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
> version = "1.1.1"
> 
> [[deps.Artifacts]]
> uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
> 
> [[deps.Base64]]
> uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
> 
> [[deps.BaseDirs]]
> git-tree-sha1 = "4b41ad09c2307d5f24e36cd6f92eb41b218af22c"
> uuid = "18cc8868-cbac-4acf-b575-c8ff214dc66f"
> version = "1.2.1"
> 
> [[deps.ChainRulesCore]]
> deps = ["Compat", "LinearAlgebra"]
> git-tree-sha1 = "2118cb2765f8197b08e5958cdd17c165427425ee"
> uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
> version = "1.19.0"
> weakdeps = ["SparseArrays"]
> 
> [deps.ChainRulesCore.extensions]
> ChainRulesCoreSparseArraysExt = "SparseArrays"
> 
> [[deps.ColorSchemes]]
> deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"]
> git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129"
> uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
> version = "3.24.0"
> 
> [[deps.ColorTypes]]
> deps = ["FixedPointNumbers", "Random"]
> git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4"
> uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
> version = "0.11.4"
> 
> [[deps.ColorVectorSpace]]
> deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"]
> git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249"
> uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
> version = "0.10.0"
> 
> [deps.ColorVectorSpace.extensions]
> SpecialFunctionsExt = "SpecialFunctions"
> 
> [deps.ColorVectorSpace.weakdeps]
> SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
> 
> [[deps.Colors]]
> deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
> git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a"
> uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
> version = "0.12.10"
> 
> [[deps.Compat]]
> deps = ["UUIDs"]
> git-tree-sha1 = "886826d76ea9e72b35fcd000e535588f7b60f21d"
> uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
> version = "4.10.1"
> weakdeps = ["Dates", "LinearAlgebra"]
> 
> [deps.Compat.extensions]
> CompatLinearAlgebraExt = "LinearAlgebra"
> 
> [[deps.CompilerSupportLibraries_jll]]
> deps = ["Artifacts", "Libdl"]
> uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
> version = "1.0.5+1"
> 
> [[deps.Contour]]
> deps = ["StaticArrays"]
> git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7"
> uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
> version = "0.5.7"
> 
> [[deps.DataStructures]]
> deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
> git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d"
> uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
> version = "0.18.15"
> 
> [[deps.Dates]]
> deps = ["Printf"]
> uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
> 
> [[deps.DelimitedFiles]]
> deps = ["Mmap"]
> git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae"
> uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
> version = "1.9.1"
> 
> [[deps.DocStringExtensions]]
> deps = ["LibGit2"]
> git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d"
> uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
> version = "0.9.3"
> 
> [[deps.Downloads]]
> deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
> uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
> version = "1.6.0"
> 
> [[deps.FileWatching]]
> uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
> 
> [[deps.FixedPointNumbers]]
> deps = ["Statistics"]
> git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc"
> uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
> version = "0.8.4"
> 
> [[deps.HypertextLiteral]]
> deps = ["Tricks"]
> git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653"
> uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2"
> version = "0.9.5"
> 
> [[deps.ImplicitPlots]]
> deps = ["Contour", "MultivariatePolynomials", "RecipesBase", "Requires", "StaticArrays", "StaticPolynomials"]
> git-tree-sha1 = "baaa32fec0346ccf55b61972858f33809d8f9694"
> uuid = "55ecb840-b828-11e9-1645-43f4a9f9ace7"
> version = "0.2.3"
> 
> [[deps.InteractiveUtils]]
> deps = ["Markdown"]
> uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
> 
> [[deps.JSON]]
> deps = ["Dates", "Mmap", "Parsers", "Unicode"]
> git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a"
> uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
> version = "0.21.4"
> 
> [[deps.LaTeXStrings]]
> git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec"
> uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
> version = "1.3.1"
> 
> [[deps.LibCURL]]
> deps = ["LibCURL_jll", "MozillaCACerts_jll"]
> uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
> version = "0.6.4"
> 
> [[deps.LibCURL_jll]]
> deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
> uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
> version = "8.4.0+0"
> 
> [[deps.LibGit2]]
> deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
> uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
> 
> [[deps.LibGit2_jll]]
> deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"]
> uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
> version = "1.6.4+0"
> 
> [[deps.LibSSH2_jll]]
> deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
> uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
> version = "1.11.0+1"
> 
> [[deps.Libdl]]
> uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
> 
> [[deps.LinearAlgebra]]
> deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"]
> uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
> 
> [[deps.Logging]]
> uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
> 
> [[deps.Markdown]]
> deps = ["Base64"]
> uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
> 
> [[deps.MbedTLS_jll]]
> deps = ["Artifacts", "Libdl"]
> uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
> version = "2.28.2+1"
> 
> [[deps.Mmap]]
> uuid = "a63ad114-7e13-5084-954f-fe012c677804"
> 
> [[deps.MozillaCACerts_jll]]
> uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
> version = "2023.1.10"
> 
> [[deps.MultivariatePolynomials]]
> deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"]
> git-tree-sha1 = "6ffb234d6d7c866a75c1879d2099049d3a35a83a"
> uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3"
> version = "0.5.3"
> 
> [[deps.MutableArithmetics]]
> deps = ["LinearAlgebra", "SparseArrays", "Test"]
> git-tree-sha1 = "806eea990fb41f9b36f1253e5697aa645bf6a9f8"
> uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0"
> version = "1.4.0"
> 
> [[deps.NetworkOptions]]
> uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
> version = "1.2.0"
> 
> [[deps.OpenBLAS_jll]]
> deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
> uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
> version = "0.3.23+2"
> 
> [[deps.OrderedCollections]]
> git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5"
> uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
> version = "1.6.3"
> 
> [[deps.Parameters]]
> deps = ["OrderedCollections", "UnPack"]
> git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe"
> uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
> version = "0.12.3"
> 
> [[deps.Parsers]]
> deps = ["Dates", "PrecompileTools", "UUIDs"]
> git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf"
> uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
> version = "2.8.0"
> 
> [[deps.Pkg]]
> deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
> uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
> version = "1.10.0"
> 
> [[deps.PlotlyBase]]
> deps = ["ColorSchemes", "Dates", "DelimitedFiles", "DocStringExtensions", "JSON", "LaTeXStrings", "Logging", "Parameters", "Pkg", "REPL", "Requires", "Statistics", "UUIDs"]
> git-tree-sha1 = "56baf69781fc5e61607c3e46227ab17f7040ffa2"
> uuid = "a03496cd-edff-5a9b-9e67-9cda94a718b5"
> version = "0.8.19"
> 
> [[deps.PlutoPlotly]]
> deps = ["AbstractPlutoDingetjes", "BaseDirs", "Colors", "Dates", "Downloads", "HypertextLiteral", "InteractiveUtils", "LaTeXStrings", "Markdown", "Pkg", "PlotlyBase", "Reexport", "TOML"]
> git-tree-sha1 = "58dcb661ba1e58a13c7adce77435c3c6ac530ef9"
> uuid = "8e989ff0-3d88-8e9f-f020-2b208a939ff0"
> version = "0.4.4"
> 
> [deps.PlutoPlotly.extensions]
> PlotlyKaleidoExt = "PlotlyKaleido"
> UnitfulExt = "Unitful"
> 
> [deps.PlutoPlotly.weakdeps]
> PlotlyKaleido = "f2990250-8cf9-495f-b13a-cce12b45703c"
> Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
> 
> [[deps.PrecompileTools]]
> deps = ["Preferences"]
> git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f"
> uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
> version = "1.2.0"
> 
> [[deps.Preferences]]
> deps = ["TOML"]
> git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e"
> uuid = "21216c6a-2e73-6563-6e65-726566657250"
> version = "1.4.1"
> 
> [[deps.Printf]]
> deps = ["Unicode"]
> uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
> 
> [[deps.REPL]]
> deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
> uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
> 
> [[deps.Random]]
> deps = ["SHA"]
> uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
> 
> [[deps.RecipesBase]]
> deps = ["PrecompileTools"]
> git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff"
> uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
> version = "1.3.4"
> 
> [[deps.Reexport]]
> git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b"
> uuid = "189a3867-3050-52da-a836-e630ba90ab69"
> version = "1.2.2"
> 
> [[deps.Requires]]
> deps = ["UUIDs"]
> git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7"
> uuid = "ae029012-a4dd-5104-9daa-d747884805df"
> version = "1.3.0"
> 
> [[deps.SHA]]
> uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
> version = "0.7.0"
> 
> [[deps.Serialization]]
> uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
> 
> [[deps.Sockets]]
> uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
> 
> [[deps.SparseArrays]]
> deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"]
> uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
> version = "1.10.0"
> 
> [[deps.StaticArrays]]
> deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"]
> git-tree-sha1 = "fba11dbe2562eecdfcac49a05246af09ee64d055"
> uuid = "90137ffa-7385-5640-81b9-e52037218182"
> version = "1.8.1"
> weakdeps = ["ChainRulesCore", "Statistics"]
> 
> [deps.StaticArrays.extensions]
> StaticArraysChainRulesCoreExt = "ChainRulesCore"
> StaticArraysStatisticsExt = "Statistics"
> 
> [[deps.StaticArraysCore]]
> git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d"
> uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
> version = "1.4.2"
> 
> [[deps.StaticPolynomials]]
> deps = ["LinearAlgebra", "MultivariatePolynomials", "StaticArrays"]
> git-tree-sha1 = "0b4ec86a5ba2269c51897381dd0e7a222650f447"
> uuid = "62e018b1-6e46-5407-a5a7-97d4fbcae734"
> version = "1.3.7"
> 
> [[deps.Statistics]]
> deps = ["LinearAlgebra", "SparseArrays"]
> uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
> version = "1.10.0"
> 
> [[deps.SuiteSparse_jll]]
> deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"]
> uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c"
> version = "7.2.1+1"
> 
> [[deps.TOML]]
> deps = ["Dates"]
> uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
> version = "1.0.3"
> 
> [[deps.Tar]]
> deps = ["ArgTools", "SHA"]
> uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
> version = "1.10.0"
> 
> [[deps.TensorCore]]
> deps = ["LinearAlgebra"]
> git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6"
> uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50"
> version = "0.1.1"
> 
> [[deps.Test]]
> deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
> uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
> 
> [[deps.Tricks]]
> git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f"
> uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775"
> version = "0.1.8"
> 
> [[deps.UUIDs]]
> deps = ["Random", "SHA"]
> uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
> 
> [[deps.UnPack]]
> git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b"
> uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
> version = "1.0.2"
> 
> [[deps.Unicode]]
> uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
> 
> [[deps.Zlib_jll]]
> deps = ["Libdl"]
> uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
> version = "1.2.13+1"
> 
> [[deps.libblastrampoline_jll]]
> deps = ["Artifacts", "Libdl"]
> uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
> version = "5.8.0+1"
> 
> [[deps.nghttp2_jll]]
> deps = ["Artifacts", "Libdl"]
> uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
> version = "1.52.0+1"
> 
> [[deps.p7zip_jll]]
> deps = ["Artifacts", "Libdl"]
> uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
> version = "17.4.0+2"
> """
> 
> # ╔═╡ Cell order:
> # ╠═1ae23a34-a49b-11ee-1deb-dbdf759ba6b2
> # ╠═af65752e-62fa-410b-9d39-eb45b877bf69
> # ╠═8d689808-d40d-4267-87d7-b6284520fed5
> # ╠═ac759b72-88ae-49ce-9fbb-4bf9f439029c
> # ╠═770169d4-c7df-44f8-a8e6-df08de3497b7
> # ╟─00000000-0000-0000-0000-000000000001
> # ╟─00000000-0000-0000-0000-000000000002
> 
> ```

Here it uses the custom `@bind` functionality that is shown in the [Interactivity with HTML](https://featured.plutojl.org/web/interactivity%20with%20html) featured Pluto notebook and some convenience method in PlutoPlotly to assign custom javascript to Plotly events (the [plotly\_click](https://plotly.com/javascript/plotlyjs-events/#click-event) event to be specific).

Here is a short video example:

This show that it is possible, but it’s not as simple as changing one line to existing code because:

- ImplicitPlots is specifically made for Plots.jl (and doesn’t really provide much functionality for other plotting packages)
- There is still some manual tweaking necessary for extracting stuff from plotly plots at least in Pluto.
