本次简单测试了一下echarts4r的一些基本作图,个人觉得该包目前是最好的Echarts接口,目前也有在持续更新。
继续捣腾动图的原因是之前用gganimate做的动画看起来真的不太美观:
https://zhuanlan.zhihu.com/p/109331350zhuanlan.zhihu.com
而且gganimate还有一些衍生问题,我今天下午发现我的C盘要塞爆了,一开始我以为是windows更新残留,结果:
是不是在逗我….做完gif之后不会顺便清理一下图片吗…..总之,大家在使用gganimate的时候记得留意一下硬盘空间。
回归正题,这里直接演示Echart的动态效果:
https://www.zhihu.com/video/1219396997167378432
代码:
data %>% group_by(variable) %>%
e_charts(date) %>%
e_line(value,
showSymbol = FALSE,
xAxis = list(
type = 'time'
)) %>%
e_datazoom(type = "slider") %>% #时间轴控件
e_animation(duration = 50000) #出现动画时长
简单的不要不要的,而且动态效果比gif顺滑很多,缺点是需要自己录屏再做一些处理。
有两个需要注意的点。第一,如果x轴是时间的话,在绘图之前必须对数据框按时间前后排序,echarts4r的函数不会像ggplot2那样自动排序数据。第二,一些函数设置在echart4r的References里不会说明,需要去Echart4网站查参数,例如上面e_line()里的showSymbol。
输入数据的动态更新需要结合shiny来实现,echarts4r也支持动态更新输入数据:
Append Proxy — e_append1_pecharts4r.john-coene.com
可以直接拷贝该函数的示例来玩玩,但奇怪的是,当我把数据框及作图函数里的z都删掉了之后,运行程序就会报错。感觉要玩好这个功能需要对Shiny的交互对象函数比较熟悉,我试了一个晚上还是没法成功应用这个函数来动态更新图表。这里先留个坑,之后有时间的话会继续研究。