Forum Discussion
vivians
1 year agoFrequent Visitor
Deneb chart with dynamic x-axis
Hi, I am trying to create a chart which is similar this Deneb chart with dynamic x-axis. I manage to change the x-axis into a dynamic axis, however, I can't change the size of the circle. Here is...
Anonymous
1 year agoNot applicable
Hi vivians ,
Not sure if it works.
{
"data": {
"name": "dataset"
},
"transform": [
{
"joinaggregate": [
{"op": "max", "field": "End of Month", "as": "max"},
{"op": "min", "field": "Start of Month", "as": "min"}
]
},
{"calculate": "datum.max", "as": "max"},
{"calculate": "datum.min", "as": "min"},
// Now separately aggregate for size without affecting joinaggregate
{
"aggregate": [
{"op": "sum", "field": "Point", "as": "sum_Point"}
],
"groupby": ["Country", "Date"] // Group by the required fields to avoid affecting X-axis
}
],
"params": [
{"name": "max", "expr": "data('data_0')[0]['max']"},
{"name": "min", "expr": "data('data_0')[0]['min']}
],
"mark": {
"type": "circle"
},
"encoding": {
"x": {
"field": "Date",
"timeUnit": "yearmonthdate",
"type": "temporal",
"scale": {"domain": {"expr": "[min,max]"}},
"axis": {
"tickCount": 10,
"labelAlign": "left",
"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']",
"labelOffset": 4,
"labelPadding": -24,
"tickSize": 30,
"gridDash": {
"condition": {"test": {"field": "value", "timeUnit": "month", "equal": 1}, "value": []},
"value": [2, 2]
},
"tickDash": {
"condition": {"test": {"field": "value", "timeUnit": "month", "equal": 1}, "value": []},
"value": [2, 2]
}
}
},
"y": {
"field": "Country",
"type": "nominal"
},
"size": {
"field": "sum_Point", // Use the aggregated sum of Points for size
"type": "quantitative",
"legend": null
},
"color": {
"field": "Type",
"legend": null
}
}
}
If the problem persists, please consider posting it on the vega forum.
Best Regards,
Wearsky