> This is a flame graph (which is an adjacency diagram with an inverted icicle layout), using polar coordinates. It is very pretty, and as someone said "it always wows". Sunbursts are the new pie chart. Deeper slices exaggerate their size, and look visually larger. The smaller-looking slice 2 in this image represents 27.7 Mbytes, whereas the larger-looking slice 1 is 25.6 Mbytes. This visualization is actually showing that slice 1 is smaller than slice 2, although I bet most people would think it was the other way around! The problem is that to understand this correctly requires the comparison of angles, instead of lengths or areas, which has been evaluated as a more difficult perceptive task.
https://www.brendangregg.com/blog/2017-02-06/flamegraphs-vs-...
Also, I think flame graphs are easier to implement, and correspond better to the underlying data (fewer visual illusions)
Both of them take tree-shaped data, and a quantity, and you want to attribute the space of the children to the parents. For disk space it's:
100 /home/andy/foo.txt
42 /home/andy/src/bar.txt
For function profiles it's 100 f() g()
42 f() g() h()
So you can use both visualizations with both kinds of data.Also, ncdu is an curses UI for disk space, and I have to admit it's pretty much as effective in practice as tree maps. It doesn't necessarily give you a nice overview though.
A good treemap actually hides the tree structure. (From the link, the GrandPerspective one is good the Baobab one is useless due to the borders/padding). In a tree map you can see siblings, cousins, 2'nd degree cousins of similar importance (size) next to each other and you can see smaller items because size is represented as the surface of a rectangle.
On a flame graph, you can visualise the entire tree in all of it depth but since size is now just length instead of surface it is harder to compare tiny slivers. A flame graph can however be ordered by other criteria than size.
Sunbursts are circular distorted flame graphs and are of dubious utility.
What's an example of where you'd want to see the "siblings" ?
In my experience with disk files and function profiles, the parent-child and path to the root is what solves the problem