Data in ECharts is stored mostly in three formats.

Data storage in echarty follows the same three formats.
Below are live examples with source code.
Command ec.clmn() is used to set symbolSize and tooltip formatter.
Browse the code (under Show button) and move mouse over charts to see tooltips.

initialization

library(echarty); library(dplyr)

#  data for the first two charts
df <- Orange |> filter(Tree==4) |> 
  mutate(size=paste0(round(circumference/167*100),'%'), Tree=NULL)

# image of a tree
treeDataURI <- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAA2CAYAAADUOvnEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA5tJREFUeNrcWE1oE0EUnp0kbWyUpCiNYEpCFSpIMdpLRTD15s2ePHixnj00N4/GoyfTg2fbiwdvvagHC1UQ66GQUIQKKgn1UAqSSFua38b3prPJZDs7s5ufKn0w7CaZ2W/fe9/73kyMRqNB3Nrj1zdn4RJ6du9T2u1a2iHYSxjP4d41oOHGQwAIwSUHIyh8/RA8XeiXh0kLGFoaXiTecw/hoTG4ZCSAaFkY0+BpsZceLtiAoV2FkepZSDk5EpppczBvpuuQCqx0YnkYcVVoqQYMyeCG+lFdaGkXeVOFNu4aEBalOBk6sbQrQF7gSdK5JXjuHXuYVIVyr0TZ0FjKDeCs6km7JYMUdrWAUVmZUBtmRnVPK+x6nIR2xomH06R35ggwJPeofWphr/W5UjPIxq8B2bKgE8C4HVHWvg+2gZjXj19PkdFztY7bk9TDCH/g6oafDPpaoMvZIRI5WyMB/0Hv++HkpTKE0kM+A+h20cPAfN4GuRyp9G+LMTW+z8rCLI8b46XO9zRcYZTde/j0AZm8WGb3Y2F9KLlE2nqYkjFLJAsDOl/lea0q55mqxXcL7YBc++bsCPMe8mUyU2ZIpnCoblca6TZA/ga2Co8PGg7UGUlEDd0ueptglbrRZLLE7poti6pCaWUo2pu1oaYI1CF9b9cCZPO3F8ikJQ/rPpQT5YETht26ss+uCIL2Y8vHwJGpA96GI5mjOlaKhowUy6BcNcgIhDviTGWCGFaqEuufWz4pgcbCh+w0gEOyOjTlTtYYlIWPYWKEsLDzOs+nhzaO1KEpd+MXpOoTUgKiNyhdy5aSMPNVqxtSsJFgza5EWA4zKtCJ2OGbLn0JSLu8+SL4G86p1Fpr7ABXdGFF/UTD4rfmFYFw4G9VAJ9SM3aF8l3yok4/J6IV9sDVb36ynmtJ2M5+CwxTYBdKNMBaocKGV2nYgkz6r+cHBP30MzAfi4Sy+BebSoPIOi8PW1PpCCvr/KOD4k9Zu0WSH0Y0+SxJ2awp/nlwKtcGyHOJ8vNHtRJzhPlsHr8MogtlVtwUU0tSM1x58upSKbfJnSKUR07GVMKkDNfXpzpv0RTHy3nZMVx5IOWdZIaPabGFvfpwpjnvfmJHXLaEvZUTseu/TeLc+xgAPhEAb/PbjO6PBaOTf6LQRh/dERde23zxLtOXbaKNhfq2L/1fAOPHDUhOpIf5485h7l+GNHHiSYPKE3Myz9sFxoJuAyazvwIMAItferha5LTqAAAAAElFTkSuQmCC';

dataset

Done by calling ec.data(df, 'dataset'), or just ec.data(df). Note that when a data.frame is chained (like df |> ec.init()), it creates a dataset with the same format.

ec.init(
    xAxis= list(splitLine=list(show=FALSE), name='days'),
    yAxis= list(show=FALSE), tooltip= list(show=T),
    series.param= list( type= 'pictorialBar', 
    data= ec.data(df),
        symbol= paste0('image://',treeDataURI),
        symbolSize= ec.clmn('size'),
        tooltip= list(formatter= ec.clmn('%@ days<br>circumf. %@ mm', 'age','circumference')) )
) |> ec.theme('dark-mushroom')

data values

Done with data = ec.data(df, "values"). Each data item is represented by a named list with a single name ‘value’ containing a character vector of values.

ec.init(
    xAxis= list(splitLine=list(show=FALSE), name='days'),
    yAxis= list(show=FALSE), tooltip= list(show=T),
    series.param= list( type= 'pictorialBar', 
        data= ec.data(df, 'values'),       # keep before ec.clmn() calls
        symbol= paste0('image://',treeDataURI),
        symbolSize= ec.clmn('size'),
        tooltip= list(formatter= ec.clmn('%@ days<br>circumf. %@ mm', 'age','circumference')) )
) |> ec.theme('dark-mushroom')

data names

Done with data = ec.data(isl, "names"). Used also to customize data items with properties like ‘itemStyle’, ‘label’, etc.

isl <- data.frame(name= names(islands), value=islands) |> filter(value>100) |> arrange(value)
ec.init(
    title= list(text= "Landmasses over 100,000 mi\u00B2", left='center'),
    tooltip= list(trigger='item'), 
    series= list(list( type= 'pie',
      data= ec.data(isl, 'names'),
        tooltip= list(formatter= ec.clmn("<h3>%@</h3>%L@ mi\u00B2", 'name','value')) ))
      ,color= rainbow(16, start=0.2, alpha=0.9)
)