render({
mark: { type: "bar", width: 20},
data: { values: portfolioData },
transform: [
{ calculate: "datum.Shares * datum.Price", as: "Total Value" },
{ calculate: "datum.Investor +'-'+datum.Date", as: "Investor-Date"},
{
"calculate": "(datum.Investor === 'Glendale' ? 0 : datum.Investor === 'Maria' ? 3 : datum.Investor === 'Michael' ? 6 : 9) + (datum.Date === 'November 8, 2019' ? 0 : 1)",
"as": "position"
}
],
encoding: {
x: { field: "position", type: "O",
axis:{
labelExpr: "datum.label",
title: "Investor-Date",
values: [0, 1, 3, 4, 6, 7, 9, 10],
labelAlign: "center",
labelOffset: 5
},
scale: {
domain: [0, 1, 3, 4, 6, 7, 9, 10]
}
},
y: { aggregate: "sum", field: "Total Value", type: "Q" },
color: { field: "Symbol", type: "N", scale:{scheme: "turbo"} },
tooltip: [
{ field: "Symbol", type: "N" },
{ field: "Price", type: "Q" },
{ field: "Shares", type: "Q" },
{ field: "Total Value", type: "Q" }
],
},
datasets: {
labels: [
{value: 0, label: "Glendale-November 8, 2019"},
{value: 1, label: "Glendale-November 6, 2023"},
{value: 3, label: "Maria-November 8, 2019"},
{value: 4, label: "Maria-November 6, 2023"},
{value: 6, label: "Michael-November 8, 2019"},
{value: 7, label: "Michael-November 6, 2023"},
{value: 9, label: "Richa-November 8, 2019"},
{value: 10, label: "Richa-November 6, 2023"}
]
}
})