How to visualize complex data on Linux
Simon Quain shows how to visualize Covid-19 statistics and more with freely available open datasets and Timelion, a plugin for Elasticsearch.
When you purchase through links on our site, we may earn an affiliate commission.Here’s how it works.
Analysis…continued
As well as being chainable, we can superimpose graphs on top of other graphs by adding a comma to our existing expression and then writing a new.es()expression afterwards.
To get the cumulative sum of cases for France as well as the cumulative sum of cases for the United Kingdom on the same graph, we can write the following:
.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).cusum(),
.es(index=covid, q=“countriesAndTerritories: France”, metric=sum:cases).cusum()
You may find that even setting the interval to daily, your graphs are still relatively spiky because the value of the metric you’re investigating fluctuates wildly day to day. To smooth these spikes out, we can use moving averages that calculate a series of averages over time for different subsets of the full dataset.
In Timelion we can calculate a moving average by adding.mvavg(NUMBER_OF_DATA_POINTS)to the end of our expression.
So to calculate a moving average over a week of the number of cases in England we can write
Are you a pro? Subscribe to our newsletter
Sign up to the TechRadar Pro newsletter to get all the top news, opinion, features and guidance your business needs to succeed!
.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).mvavg(7).
So far we’ve been displaying everything as a line graph. There are many ways you can format the data, whether it be as points for each interval with.points(), as a series of bars with.bars()or perhaps you want to set the colour of a certain line to red with.color(red).
Perhaps you wanted the actual figure for cases to be displayed as a series of points, but the weekly moving average to be shown as a line graph. You could achieve this with two Timelion expressions:
.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).points(),
.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).mvavg(7)
You can also wrap parentheses around several Timelion expressions to have the same formatting apply to that set of expressions.
You can draw a line showing the trend for the statistic in question with the.trend()function.
The below expression sets the colour of both lines drawn previously to grey and adds a new line in red showing the trend for the time period chosen.
(.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).points(),
.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).mvavg(7)).color(“grey”),
.es(index=covid, q=“countriesAndTerritories: United_Kingdom”, metric=sum:cases).trend().color(“red”)
The.color()function can take colours as an argument in English or with hex values. But it’s not the only Timelion function that takes arguments.
With the.points()function you can change the fill colour withfillColoror whether the points appear as circles, diamonds or crosses with thesymbolargument.
Timelion will try to autosuggest functions and arguments for you as you type, much like an IDE. You can press up and down to choose which one you want and press the Tab key to complete. The best place to see a list of all Timelion functions and the arguments they take is in thedocumentation on GitHub.
Current page:Analysis…continued
iStorage Group acquires Kanguru Solutions as it looks to expand security offering
Phishing attacks surge in 2024 as cybercriminals adopt AI tools and multi-channel tactics
Arcane season 2 finally gave us the huge Caitlyn and Vi moment we’ve been waiting for – and its creators say ‘we couldn’t have done it in season one’