前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >echarts4r入门详解

echarts4r入门详解

作者头像
拴小林
发布2022-08-31 09:21:10
4930
发布2022-08-31 09:21:10
举报
文章被收录于专栏:数据驱动实践数据驱动实践

echarts4是百度开源项目,是一款简单实用、图表优美的js动态图表可视化包。

代码语言:javascript
复制
install.packages("echarts4r")

绘图特征

  • 类似ggplot2,可实现要素叠加
  • 支持%>%管道函数
  • e_charts()初始化数据,一般定义x轴(横轴)变量
  • e_line、e_bar等图形类型均以e_为前缀,基本支持echarts所有图形。常见的折线图、面积图、饼状图、散点图、雷达图、日历图、热力图等。
代码语言:javascript
复制
e_bar
e_line
e_step
e_area
e_scatter
e_heatmap
e_pie
e_lines
e_histogram
e_lm
e_boxplot

……
  • 可在shiny内使用。个性的表达函数
代码语言:javascript
复制
echarts4rOutput(outputId, width = "100%", height = "400px")
renderEcharts4r(expr, env = parent.frame(), quoted = FALSE)
  • 可实现动图(动态趋势图,动态条形排行榜等)

关键特征要素及作用

  • e_chart() ——初始化图形,一般直接定义x变量(x坐标轴)
  • e_line() /e_bar() ——定义图形类型,一般直接定义y,z轴变量。如涉及双坐标轴的(双y变量的),可通过index参数(y_index x_index)关联图形类型和y轴(yAxis)对应关系。
代码语言:javascript
复制
x <- as.Date(Sys.Date())+1:30
y <- rep(10:15,5)
z <- 1:30
grp <- rep(c("A","B","C"))
df <- data.frame(x=x,y=y,z=z,grp=grp)

df %>% 
  e_chart(x) %>% 
  e_line(y,y_index=0) %>% 
  e_y_axis(y,position="right",y_index=0,name = "y") %>% 
  e_bar(z,y_index=2) %>% 
  e_y_axis(z,position="left",y_index=2,name = "z")
  • e_title——定义标题
  • e_legend——定义图例
  • e_tooltip——定义动态坐标(鼠标指针变量值)
  • e_animation——定义动态显示(时间间隔等)
  • e_mark_line——定义参考线。如涉及多参考线的,可采取以下方法(可能不是最正确的)
代码语言:javascript
复制
  e_mark_line(data = list(yAxis=1000)) %>% 
  e_mark_line(data = list(yAxis=1500)) %>%
  e_mark_line(data = list(yAxis=2000)) %>%
  e_mark_line(data = list(yAxis=2500)
  • e_visual_map——定义图/线指定区间值、颜色显示等。
代码语言:javascript
复制
e_visual_map(type = "piecewise",
               show = FALSE,
               splitNumber = 5,
               min=500,
               max=3000,
               inRange=list(color=c("#bf444c", "yellow", "blue","blue","red"),
                            colorAlpha=c(500,1000,1500,2000)))
  • e_datazoom——定义x变量区间选择(可拖拽)

更多探索可查阅Cheat Sheet - Apache ECharts

https://echarts.apache.org/en/cheat-sheet.html

(以上链接是基于js的cheatsheet,一般将对应参数嵌入到echart对象中即可)

示例

代码语言:javascript
复制
setwd("C:\\Users\\USER\\Desktop\\R\\R")

df <- readxl::read_xlsx("renkou.xlsx",na = "")
# > str(df)
# tibble [73 × 3] (S3: tbl_df/tbl/data.frame)
# $ year  : num [1:73] 1949 1950 1951 1952 1953 ...
# $ value : num [1:73] 1275 1419 1349 1622 1637 ...
# $ beizhu: chr [1:73] NA NA NA NA ...

library(dplyr)
library(echarts4r)
df %>%
  e_chart(year,reorder=TRUE) %>%
  e_line(value) %>%
  # e_labels(fontSize = 12,rotate=-45, endLabel=TRUE) %>%
  # e_datazoom(type = "slider") %>%
  e_tooltip(formatter = e_tooltip_item_formatter("currency"),axisPointer = list(type = "cross")) %>%
  e_animation(duration = 10000) %>%
  e_axis_labels(x = "(年份)",y = "(万)") %>%
  e_x_axis(min=min(df$year),max=max(df$year))  %>%
  e_title("1949-2021年全国新出生人口",
          subtext="来源:国家数据网站和年度统计",left="35%") %>%
  e_legend(show = FALSE,type = "plain",top="95%")  %>%
  e_mark_line(data = list(yAxis=1000)) %>% # lineStyle=list(color="red")
  e_mark_line(data = list(yAxis=1500)) %>%
  e_mark_line(data = list(yAxis=2000)) %>%
  e_mark_line(data = list(yAxis=2500)) %>%
  e_visual_map(type = "piecewise",
               show = FALSE,
               splitNumber = 5,
               min=500,
               max=3000,
               inRange=list(color=c("#bf444c", "yellow", "blue","blue","red"),
                            colorAlpha=c(500,1000,1500,2000)))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绘图特征
  • 关键特征要素及作用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档