Hi everyone, I'm trying to create a Gantt chart from log files that I'm pushing to Elasticsearch via curl. Very similar to this Gantt Visualization Using Vega
I'm trying this out on an example entry with a start, an end and a name, however my chart simply stays empty and I don't know what to do.
This is the data block:
{
"_index": "test-index_new_2",
"_type": "doc",
"_id": "5Z23QWsBYZIERLZf-_Wv",
"_version": 1,
"_score": 1,
"_source": {
"name": "second_event",
"duration_start": "2018-05-20T12:00:00",
"duration_end": "2018-05-22T12:00:00"
}
And this is my Vega json:
{
$schema: https://vega.github.io/schema/vega-lite/v2.json
data: {
url: {
%context%: true
%timefield%: duration_start
index: test-index_new_2
body: {
}
}
format: {property: "hits.hits"}
}
"transform": [
{"calculate": "datum._source.duration_start", "as": "start"},
{"calculate": "datum._source.duration_end", "as": "end"}
],
"mark": "bar",
"encoding": {
"y": {"field": "_source.name", "type": "nominal"},
"x": {"field": "start", "type": "temporal"},
"x2": {"field": "end", "type": "temporal"}
}
}
This is the result:
If anyone has an idea of what I'm doing wrong, please let me know! Thank you!
markov00
(Marco Vettorello)
June 27, 2019, 9:52am
2
Hey @clamorforchange I think you are missing the toDate function, to convert the date string to a date.
"transform": [
{
"calculate": "toDate(datum._source.duration_start)",
"as": "start"
},
{
"calculate": "toDate(datum._source.duration_end)",
"as": "end"
}
],
I've just tested with it with two static values and it works:
{
"$schema": "https://vega.github.io/schema/vega-lite/v3.json",
"description": "A simple bar chart with ranged data (aka Gantt Chart).",
"data": {
"values": [
{
"_index": "test-index_new_2",
"_type": "doc",
"_id": "5Z23QWsBYZIERLZf-_Wv",
"_version": 1,
"_score": 1,
"_source": {
"name": "second_event",
"duration_start": "2018-05-20T12:00:00",
"duration_end": "2018-05-22T12:00:00"
}
},
{
"_index": "test-index_new_2",
"_type": "doc",
"_id": "5Z23QWsBYZIERLZf-_Wv",
"_version": 1,
"_score": 1,
"_source": {
"name": "first_event",
"duration_start": "2018-05-12T12:00:00",
"duration_end": "2018-05-15T12:00:00"
}
}
]
},
"transform": [
{
"calculate": "toDate(datum._source.duration_start)",
"as": "start"
},
{
"calculate": "toDate(datum._source.duration_end)",
"as": "end"
}
],
"mark": "bar",
"encoding": {
"y": {
"field": "_source.name",
"type": "ordinal"
},
"x": {
"field": "start",
"type": "temporal"
},
"x2": {
"field": "end"
}
}
}
You can also omit the type
option for the x2
as it's the same type of the x
system
(system)
Closed
July 25, 2019, 9:52am
3
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.