attractions_graph_2 = {
const attr_reg = vl.markBar()
.title({ text: 'Регионы', anchor: 'start', fontSize: 16, fontFamily: 'Ubuntu' })
.width(500)
.encode(
vl.y().fieldN('Регион').sort('-x').title(false).axis({labelSize: 16}),
vl.x().sum(select).title('Число достопримечательностей').axis({format: 'f'}).scale({domain: [0, 1050]}),
vl.color().fieldN('Федеральный округ').scale({
range: usedColors
}).legend(false),
vl.tooltip().fieldN("Федеральный округ")
);
const attr_regLabel = vl.markText({dx: 4, align: 'left'})
.width(600)
.encode(
vl.y().fieldN('Регион').sort('-x'),
vl.x().sum(select),
vl.color().value('grey'),
vl.size().value(12),
vl.text().sum(select)
);
const attr_fo = vl.markBar()
.title({ text: 'Федеральные округа', anchor: 'start', fontSize: 16, fontFamily: 'Ubuntu' })
.width(400)
.encode(
vl.y().sum(select).title(false).axis({format: 'f', fontFamily: 'Ubuntu'}).scale({domain: [0, 6000]}),
vl.x().fieldN('Федеральный округ').sort('-x').title(false),
vl.color().fieldN('Федеральный округ').scale({
range: usedColors
}).legend(false),
vl.tooltip().sum(select)
);
return vl.hconcat(vl.layer(attr_reg, attr_regLabel), vl.layer(attr_fo))
.data(attractions)
.render();
}