Right, I should have explained that better - sorry for the confusion. You can think of vega-lite as its own language, independent of Julia. The Julia wrapper (interface) to vega-lite is called vegalite.jl, but other languages have wrappers too, such as Python’s altair.
What I posted is a method to pass a vega-lite JSON specification that you can copy and paste directly from the vega-lite website. I did not see an example of a drop-down in the vegalite.jl docs, but there are plenty on the vega-lite website, so I thought it would be prudent to show you how to work with the vega-lite specifications with minimal effort. In other words, you could copy/paste a specification, generate an html file, and send it to your colleagues to quickly assess if this approach would meet your need or not.
But if you think vega-lite could work, the following is how you could translate what I posted into vegalite.jl code:
using VegaLite, VegaDatasets
p1 = @vlplot(data=dataset("cars"),
mark={type="point", tooltip=true, size=75},
x=:Horsepower,
y=:Miles_per_Gallon,
color={condition={selection="org", field="Cylinders", type="ordinal"}, value=""},
width=800,
height=600,
selection={org={type="single", fields=["Origin"], bind={input="select", options=[nothing, "Europe", "Japan", "USA"]}}},
hover=:Miles_per_Gallon)
save("cars_dropdown.html", p1)
I did add one bonus above, “tooltip=true”, which shows descriptive information on mouse hover. That will add another layer of interactivity on top of the dropdown. I have used this method to send interactive plots to C-suite executives in the past and it was always well received.
Also, you can generate a table using vegalite - here is an example of an interactive table.