r语言折线图_(随笔)R语言动图之echarts4r:折线图

  • Post author:
  • Post category:其他


本次简单测试了一下echarts4r的一些基本作图,个人觉得该包目前是最好的Echarts接口,目前也有在持续更新。

继续捣腾动图的原因是之前用gganimate做的动画看起来真的不太美观:

https://zhuanlan.zhihu.com/p/109331350​zhuanlan.zhihu.com

而且gganimate还有一些衍生问题,我今天下午发现我的C盘要塞爆了,一开始我以为是windows更新残留,结果:

5c0f36a509ab725aaad4729069b3687c.png

是不是在逗我….做完gif之后不会顺便清理一下图片吗…..总之,大家在使用gganimate的时候记得留意一下硬盘空间。


回归正题,这里直接演示Echart的动态效果:

6757650e1606ab6c37808387b1d1c758.png

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_p​echarts4r.john-coene.com

5be16522283fc14a494ebcc240855592.png

可以直接拷贝该函数的示例来玩玩,但奇怪的是,当我把数据框及作图函数里的z都删掉了之后,运行程序就会报错。感觉要玩好这个功能需要对Shiny的交互对象函数比较熟悉,我试了一个晚上还是没法成功应用这个函数来动态更新图表。这里先留个坑,之后有时间的话会继续研究。