{
let passar = vl.selectSingle()
.on('mouseover')
.nearest(true)
.empty('none')
let clicar = vl.selectMulti()
.empty('none')
let scatterplot = vl.markCircle()
.encode(
vl.x().fieldQ("Umidade Relativa do Ar"),
vl.y().fieldQ("Precipitação"),
)
let base = scatterplot.transform(vl.filter({or:[passar, clicar]}))
return vl.layer(
scatterplot.select(passar).select(clicar).select(vl.selectInterval().bind('scales')),
base.markPoint({size:100,stroke:'firebrick',strokewidth:1}),
base.markText({dx: 4, dy:-8, align:'right', stroke:'white', strokeWidth:2}).encode(vl.text().fieldN("Cidade")),
base.markText({dx:4, dy:-8, align:'right'}).encode(vl.text().fieldN("Cidade"))
)
.data(dados)
.width(600)
.height(450)
.render()
}