echarts 仪表盘大小_R语言--百度ECharts接口(echarts4r包)

693ffb01d9456ccf4f8576c8ff4e3deb.png

​ECharts,是百度的一个开源的数据可视化工具,一个纯 Javascript 的图表库。echarts4r 包是 ECharts 的 R 语言接口,目前可以从 CRAN 直接安装。echarts4r 语法结构简单,易用,可读性很好,是很好的交互式绘图包。

本文介绍 echarts4r 的常规交互式图形,交互式图形可以用在 rmarkdown 和 shiny 应用中。

环境&软件

  • win10 64bit
  • R 3.6.1

安装包

install.packages("echarts4r")

散点图

echarts4r 作图第一步用e_charts函数创建一个 echarts4r 对象,函数第一个参数为数据,第二个参数为 x 轴数据,第二步以及后续都是用%>%管道操作符来进一步作图。

绘制散点图,用iris数据,x 轴为 Sepal.Length。y 轴为 Petal.Length,在e_scatter中定义为serie。通过group_by根据 Sepal.Length 进行分组,在图中表现为不同颜色。散点大小通过size参数设置。

library(echarts4r)
iris %>%
    group_by(Species) %>%
    e_charts(x = Sepal.Length) %>%
    e_scatter(serie = Petal.Length, size = Sepal.Width)

f95dec4ced57d352af765cd1480dba30.png

对比一下 ggplot2 的散点图语法。

library(ggplot2)
iris %>%
  ggplot(aes(x=Sepal.Length,y=Petal.Length,size=Sepal.Width,col=Species))+
  geom_point()

bbc9a3af3ac965667a868b94bbb69502.png

柱状图

df <- data.frame(
  x = seq(50),
  y = rnorm(50, 10, 3),
  z = rnorm(50, 11, 2),
  w = rnorm(50, 9, 2)
)

df %>%
  e_charts(x) %>%
  e_bar(y, name = "bar") %>%
  e_title("Bar and step charts")

f78af65873bc22d9aaaf9029c497f2ed.png

极坐标图

df %>%
  e_charts(x) %>%
  e_polar() %>%
  e_angle_axis(x) %>% # angle = x
  e_radius_axis() %>%
  e_bar(y, coord_system = "polar") %>%
  e_scatter(z, coord_system = "polar")

67e187129eb18f522e74ba3af35ca955.png

漏斗图

funnel <- data.frame(stage = c("View", "Click", "Purchase"), value = c(80, 30, 20))

funnel %>%
  e_charts() %>%
  e_funnel(value, stage) %>%
  e_title("Funnel")

f77d3356c76a5d7490d43e4bfc98f718.png

热力图

v <- LETTERS[1:10]
matrix <- data.frame(
  x = sample(v, 300, replace = TRUE),
  y = sample(v, 300, replace = TRUE),
  z = rnorm(300, 10, 1),
  stringsAsFactors = FALSE
) %>%
  dplyr::group_by(x, y) %>%
  dplyr::summarise(z = sum(z)) %>%
  dplyr::ungroup()

matrix %>%
  e_charts(x) %>%
  e_heatmap(y, z) %>%
  e_visual_map(z) %>%
  e_title("Heatmap")

a54d97190b4944e53bf1806d2cc6de10.png

日历图

dates <- seq.Date(as.Date("2017-01-01"), as.Date("2018-12-31"), by = "day")
values <- rnorm(length(dates), 20, 6)

year <- data.frame(date = dates, values = values)

year %>%
  e_charts(date) %>%
  e_calendar(range = "2018") %>%
  e_heatmap(values, coord_system = "calendar") %>%
  e_visual_map(max = 30) %>%
  e_title("Calendar", "Heatmap")

a2c62af315785716d70f3c8a76f99eee.png

仪表盘

e_charts() %>%
  e_gauge(41, "PERCENT") %>%
  e_title("Gauge")

23f1e2ce198bfa819a6d0249a5dc1107.png

雷达图

df <- data.frame(
  x = LETTERS[1:5],
  y = runif(5, 1, 5),
  z = runif(5, 3, 7)
)

df %>%
  e_charts(x) %>%
  e_radar(y, max = 7, name = "radar") %>%
  e_radar(z, max = 7, name = "chart") %>%
  e_tooltip(trigger = "item")

1d2b43e7d27a61e6b47481f21c4b801a.png

词云

words <- function(n = 5000) {
  a <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE))
  paste0(a, sprintf("%04d", sample(9999, n, TRUE)), sample(LETTERS, n, TRUE))
}

tf <- data.frame(terms = words(100),
  freq = rnorm(100, 55, 10)) %>%
  dplyr::arrange(-freq)

tf %>%
  e_color_range(freq, color) %>%
  e_charts() %>%
  e_cloud(terms, freq, color, shape = "circle", sizeRange = c(3, 15)) %>%
  e_title("Wordcloud", "Random strings")

51603b41166a5003729f40d16647c423.png

http://weixin.qq.com/r/mShLU4rECNd3rc4w932L (二维码自动识别)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值