Cloud2016
1可以通过再添加一个时间标题系列,然后通过样式设计成背景即可。
library(purrr)
library(echarts4r)
data("gapminder", package = "gapminder")
titles <- map(unique(gapminder$year), function(x) {
list(
text = "Gapminder",
left = "center"
)
})
years <- map(unique(gapminder$year), function(x) {
list(
subtext = x,
left = "center",
top = "center",
z = 0,
subtextStyle = list(
fontSize = 100,
color = "rgb(170, 170, 170, 0.5)",
fontWeight = "bolder"
)
)
})
# 添加一列颜色,各大洲和颜色的对应关系可自定义,调整 levels 或 labels 里面的顺序即可,也可不指定 levels ,调用其它调色板
gapminder <- gapminder %>%
transform(
color = factor(
continent,
levels = c("Asia", "Africa", "Americas", "Europe", "Oceania"),
labels = RColorBrewer::brewer.pal(n = 5, name = "Spectral")
)
)
gapminder %>%
group_by(year) %>%
e_charts(x = gdpPercap, timeline = TRUE) %>%
e_scatter(
serie = lifeExp, size = pop, bind = country,
symbol_size = 5, name = ""
) %>%
e_add("itemStyle", color) %>%
e_y_axis(
min = 20, max = 85, nameGap = 30,
name = "Life Exp", nameLocation = "center"
) %>%
e_x_axis(
type = "log", min = 100, max = 100000,
nameGap = 30, name = "GDP / Cap", nameLocation = "center"
) %>%
e_timeline_serie(title = titles) %>%
e_timeline_serie(title = years, index = 2) %>%
e_timeline_opts(playInterval = 1000) %>%
e_grid(bottom = 100) %>%
e_tooltip()
2的话似乎是 echarts4r 本身设置有 bug,主要原因还是因为 group_by 被用在了 timeline 上了,legend 的数据没有正确提取成功所以是空的。这部分我试了半天没有办法完成这个设置。
一个可以替代的方法是,再添加一个独立的 scatter 数据系列,然后通过各种设置将它做成 legend 的样子(https://echarts.apache.org/zh/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE)。然后和1中的方法一样添加到每一帧中。可能需要挺多时间来做的这里我就不再深究了。
学习的话只要做上十几二十个图就熟练了。主要还是参考官方文档进行设置。
还有我一般查设置是否正确的时候会在这里:
https://github.com/JohnCoene/echarts4r/blob/master/inst/htmlwidgets/echarts4r.js#L62
加上一行
console.log(opts);
自己重新打包后绘图,
将所有 Echarts 设置项输出在console中,看看是否是哪里没设置对。
同时可以模仿官方例子在 R 中进行复现来练习
https://echarts.apache.org/examples/zh/index.html
顺便参考我的一个 trick:https://github.com/JohnCoene/echarts4r/issues/287#issuecomment-795350351
PS:感觉可以追加一个 e_debug()
函数来方便用户 debug 了