vl
.layer(
vl
.markBar()
.encode(
vl
.color()
.fieldN("Continent")
.legend({ orient: "top" }),
vl
.y()
.fieldQ('PopInmillion')
.axis({ grid: true })
.sort(vl.field("Population").order('descending'))
)
.select(
vl
.selectInterval()
.bind("scales")
.encodings("y")
),
vl
.layer(
vl.markCircle().encode(vl.size().fieldQ('DensityKsqkm')),
vl.markLine().select(
vl
.selectInterval()
.bind("scales")
.encodings("y")
)
)
.encode(
vl.y().fieldQ('DensityKsqkm'),
vl.tooltip(["Continent", "Densitysqkm", "PopInmillion"])
)
)
.resolve({ scale: { y: "independent" } })
.data(filtdata)
.transform(
vl.calculate("datum.Densitysqkm/1000").as("DensityKsqkm"),
vl.calculate("datum.Population/1000000").as("PopInmillion")
)
.title("Population Density from UN Data")
.encode(
vl
.x()
.fieldN('Country')
.axis({ grid: true }),
vl.tooltip([
"Continent",
"Densitysqkm",
"DensityBAsqkm",
"Population",
"PopInmillion"
])
)
.width(width * .8)
.render()