Skip to main content

I am using airtable to track and manage activities in a plan.

the relevant table has a baseline date field, a latest planned date field and an actual date field.


Not every task has each date completed


I want to plot cumulative progress (count the number of tasks due to be complete, or complete) over time.


I am using Vega Lite to plot cumulative graphs.


Within Vega-Lite I am using filters to remove the records with no dates, then use window and count operators to generate cumulative values.

I can plot each graph independently, but if I try to layer, vconcat or hconcat the three graphs together than the filtering either cuts off the baseline fields or creates an incorrect jump at the start of the planned/actual dates as null dates are passed to Vega Lite as 01-01-1970.


Looking for ideas please!


transform and encoding script below:


“transform”:

{

“filter”: {

“field”: “Baseline Date”,

“gt”: 0

}

},

{

“sort”: {{“field”: “Baseline Date”}],

“window”: {“op”: “count”, “field”: “count”, “as”: “Cumulative Baseline”}],

“frame”: ,null, 0]

},

{

“filter”: {

“field”: “Latest Planned Date”,

“gt”: 0

}

},

{

“sort”: {“field”: “Latest Planned Date”}],

“window”: {“op”: “count”, “field”: “count”, “as”: “Cumulative Planned”}],

“frame”: null, 0]

},


{

“sort”: n{“field”: “Actual Date”}],

“window”: <{“op”: “count”, “field”: “count”, “as”: “Cumulative Actual”}],

“frame”: null, 0]

}

],


"hconcat": :
{
"mark": {"type": "line", "color": "grey"},
"encoding":{
"y": {
"field": "Cumulative Baseline",
"type": "quantitative"
},
"x": {
"type":"temporal",
"field":"Baseline Date",
"title": "Date"
}
}
},
{
"mark": {"type": "line", "color": "maroon"},
"encoding":{
"y": {
"field": "Cumulative Planned",
"type": "quantitative"
},
"x": {
"type":"temporal",
"field":"Latest Planned Date",
"title": "Date"
}
}
},
{
"mark": {"type": "line", "stroke": "lightblue", "point": true},
"encoding":{
"y": {
"field": "Cumulative Actual",
"type": "quantitative"
},
"x": {
"type":"temporal",
"field":"Actual Decom Date"
}
}
}
]
Be the first to reply!

Reply