-
-
Save jmcastagnetto/16bae7aac1cb3fc5e95d8ae77d52ce03 to your computer and use it in GitHub Desktop.
# based on the example at: https://echarts4r.john-coene.com/articles/chart_types.html#treemap | |
# the JS example at: https://echarts.apache.org/examples/en/editor.html?c=treemap-show-parent | |
# and the documentation at: https://echarts.apache.org/en/option.html#series-treemap.type | |
library(tidyverse) | |
library(echarts4r) | |
# this data structure does not work with the changed function | |
# set.seed(13579) | |
# | |
# tm <- tribble( | |
# ~parent, ~child, | |
# "Earth", "Forest", | |
# "Earth", "Ocean", | |
# "Earth", "Iceberg", | |
# "Mars", "Elon", | |
# "Mars", "Curiosity", | |
# "Discworld", "The Rim", | |
# "Discworld", "Ankh-Morpork", | |
# "Discworld", "A'Tuin" | |
# ) %>% add_column( | |
# value = ceiling(rnorm(8, 10, 2)) | |
# ) | |
# the new version of the e_treemap() function in echarts4r 0.4.2 | |
# expects hierarchical data, here I am creating it stepwise so it | |
# is clear how it should be structured | |
earth <- tribble( | |
~name, ~value, | |
"Forest", 40, | |
"Ocean", 40, | |
"Iceberg", 20 | |
) | |
mars <- tribble( | |
~name, ~value, | |
"Elon", 20, | |
"Curiosity", 80 | |
) | |
discworld <- tribble( | |
~name, ~value, | |
"The Rim", 15, | |
"Ankh-Morpork", 12, | |
"A'Tuin", 11 | |
) | |
tm <- tribble( | |
~name, ~value, ~children, | |
"Earth", 26, earth, | |
"Mars", 20, mars, | |
"Discworld", 38, discworld | |
) | |
tm %>% | |
e_charts() %>% | |
e_treemap( | |
leafDepth = 1, #drilldown | |
#breadcrumb = FALSE, #remove it | |
backgroundColor = "red", | |
itemStyle = list( | |
normal = list( | |
borderWidth = 0, | |
gapWidth = 2, | |
backgroundColor = "gray70" | |
) | |
), | |
name = "Having fun with treemaps", | |
upperLabel = list( | |
normal = list( | |
show = TRUE, | |
height = 30, | |
formatter = "{b}", | |
color = "black", | |
fontSize = 24 | |
) | |
) | |
)%>% | |
e_tooltip() %>% | |
e_labels(show = TRUE, | |
verticalAlign = "top", | |
fontSize = 24, | |
formatter = "{b}\n{@value} Thaums" | |
) %>% | |
e_title("Treemap charts", | |
textStyle = list(fontSize = 36), | |
textVerticalAlign = "top", | |
left = "center", | |
backgroundColor = "#CD853F64") %>% | |
e_theme("dark") |
Full examples of treemaps made with echarts4r are relatively hard to come by. Thank you very much for sharing this. It seems; however, that the recent update to the package has made this code obsolete. The e_treemap()
function does not currently have arguments, which will accept the column names of the data frame. I am looking forward to an update of your code if this is something that you plan to do.
HI @gueyenono, it would seem that the data needs to be hierarchical now. I'll see if can take a look at this on the weekend and come up with a new example using the same (or similar) data. Thanks for the heads up on the change in {echarts4r::e_treemap()}.
Hi @gueyenono, looks like it was a simple change in data structure. Updated the gist
@jmcastagnetto This is very much appreciated. I will study your code and learn from it.
If you need a more complex formatter, you'll need to use JS as documented in: https://echarts4r.john-coene.com/articles/tooltip.html