[ {"val": "X1"},
{"val": "X2"},
{"val": "X2"},
{"val": "X1"},
{"val": "X2"},
{"val": "X3"}
]
or:
[ "X1", "X2", "X2", "X1", "X2", "X3" ],

Vega spec (v3.0.0-beta.38)
---------------------------------------
{
"width": 500,
"height": 300,
"padding": 5,
"data": [
{ "name": "data_input",
"values": [ {"val": "X1"},
{"val": "X2"},
{"val": "X2"},
{"val": "X1"},
{"val": "X2"},
{"val": "X3"}
]
},
{ "name": "data_freq",
"source": "data_input",
"transform": [
{
"type": "aggregate",
"groupby": ["val"],
"fields": ["val"],
"ops": ["count"],
"as": ["frequency"]
}
]
},
{ "name": "data_freq_rank_filtered",
"source": "data_freq",
"transform": [
{ "type": "collect",
"sort": { "field": "frequency",
"op": "max",
"order": "descending"
}
},
{ "type": "rank",
"field": "val"
},
{ "type": "filter",
"expr": "datum.rank < 2"
}
]
}
],
"scales": [
{ "name": "scale_x",
"type": "band",
"range": "width",
"domain": { "data": "data_freq_rank_filtered",
"field": "val"
},
"padding": 0.5
},
{ "name": "scale_y",
"type": "linear",
"range": "height",
"domain": { "data": "data_freq_rank_filtered",
"field": "frequency"
},
"zero": true,
"nice": true
}
],
"axes": [
{ "orient": "bottom", "scale": "scale_x"},
{ "orient": "left", "scale": "scale_y", "tickCount": 3}
],
"marks": [
{ "type": "rect",
"from": {"data": "data_freq_rank_filtered"},
"encode": {
"update": {
"fill": {"value": "steelblue"},
"x": {"scale": "scale_x", "field": "val"},
"width": {"scale": "scale_x", "band": 1},
"y": {"scale": "scale_y", "field": "frequency"},
"y2": {"scale": "scale_y", "value": 0}
}
}
}
]