considere este exemplo (aqui com mais dados de amostra no editor vega )
{
"$schema": "https://vega.github.io/schema/vega-lite/v6.json",
"data": {
"name": "dataset",
"values": [
{
"JobBeg": "2023-01-01T11:04:45",
"JobEnd": "2023-01-01T18:04:45",
"JobNum": "JN000",
"Assigned_To": "David",
"Midpoint": "2023-01-01T14:34:45"
},
{
"JobBeg": "2023-01-01T15:07:31",
"JobEnd": "2023-01-01T18:07:31",
"JobNum": "JN001",
"Assigned_To": "Bob",
"Midpoint": "2023-01-01T16:37:31"
}
]
},
"layer": [
{
"mark": {"type":"bar", "stroke":"black","strokeWidth":2},
"encoding": {
"y": {
"field": "Assigned_To",
"type": "nominal",
"title": "Assigned To"
},
"x": {
"field": "JobBeg",
"type": "temporal",
"title": "Start Time",
"axis":
{
"interval": "day",
"step": 1
}
},
"x2": {
"field": "JobEnd",
"title": "End Time"
},
"tooltip": [
{
"field": "JobBeg",
"type": "temporal",
"title": "Start Time",
"format": "%Y-%m-%d %H:%M"
},
{
"field": "JobEnd",
"type": "temporal",
"title": "End Time",
"format": "%Y-%m-%d %H:%M"
},
{
"field": "JobNum",
"type": "nominal"
}
]
}
},
{
"mark": {
"type": "text",
"align": "center",
"baseline": "middle"
},
"encoding": {
"y": {
"field": "Assigned_To",
"type": "nominal"
},
"x": {
"field": "Midpoint",
"type": "temporal"
},
"text": {
"field": "JobNum",
"type": "nominal"
}
}
}
]
}
atualmente, estou usando o ponto médio do início/fim de um trabalho para centralizar a marca de texto em cada barra, mas não consigo descobrir uma maneira de restringir a marca de texto ao tamanho da barra (por exemplo, se for uma duração muito curta, não devo ver o texto transbordar da barra)