{
const pricePlane = vl.markLine().data(stats)
.transform(vl.filter('datum.Mode == "Plane"'))
.encode(
vl.x().fieldQ("TicketPriceEuros").scale({domain: [0, 450]}),
vl.y().fieldN("Route")
.title("Plane's Ticket Price")
.axis({ titleAngle: 0, titleX: 0, titleY: -10}),
vl.color().fieldN("Route")
.scale({range:['rgb(47,158,226)']})
.legend(null)
).width(250)
const priceTrain = vl.markLine().data(stats)
.transform(vl.filter('datum.Mode == "Train"'))
.encode(
vl.x().fieldQ("TicketPriceEuros").scale({domain: [0, 450]}),
vl.y().fieldN("Route")
.title("Train's Ticket Price")
.axis({ titleAngle: 0, titleX: 0, titleY: -10}),
vl.color().fieldN("Route").legend(null)
.scale({range:['rgb(48,231,132)']})
).width(250)
const priceAvg = vl.markPoint().data(stats)
.encode(
vl.x().average('TicketPriceEuros').scale({domain: [0, 450]}),
vl.y().fieldN("Route")
.axis({ titleAngle: 0, titleX: 0, titleY: -10}),
vl.color().fieldN("Mode").legend(null),
vl.shape().fieldN("Mode")
).width(250)
return vl.vconcat(pricePlane, priceTrain, priceAvg)
.render()
}