echarts4是百度开源项目,是一款简单实用、图表优美的js动态图表可视化包。
install.packages("echarts4r")
e_bar
e_line
e_step
e_area
e_scatter
e_heatmap
e_pie
e_lines
e_histogram
e_lm
e_boxplot
……
echarts4rOutput(outputId, width = "100%", height = "400px")
renderEcharts4r(expr, env = parent.frame(), quoted = FALSE)
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_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(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)))
更多探索可查阅Cheat Sheet - Apache ECharts
https://echarts.apache.org/en/cheat-sheet.html
(以上链接是基于js的cheatsheet,一般将对应参数嵌入到echart对象中即可)
示例
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)))