R語言--百度ECharts接口(echarts4r包)

ECharts,是百度的一個開源的數(shù)據(jù)可視化工具,一個純 Javascript 的圖表庫。echarts4r包是ECharts的R語言接口,目前可以從CRAN是直接安裝。echarts4r語法結構簡單,易用,可讀性很好,是很好的交互式繪圖包。

本文介紹echarts4r的常規(guī)交互式圖形,交互式圖形可以用在rmarkdown和shiny應用中。

安裝包

install.packages("echarts4r")

散點圖

echarts4r作圖第一步用e_charts函數(shù)創(chuàng)建一個echarts4r對象,函數(shù)第一個參數(shù)為數(shù)據(jù),第二個參數(shù)為x軸數(shù)據(jù),第二步以及后續(xù)都是用%>%管道操作符來進一步作圖。

繪制散點圖,用iris數(shù)據(jù),x軸為Sepal.Length。y軸為Petal.Length,在e_scatter中定義為serie。通過group_by根據(jù)Sepal.Length進行分組,在圖中表現(xiàn)為不同顏色。散點大小通過size參數(shù)設置。

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

對比一下ggplot2的散點圖語法。

library(ggplot2)
iris %>% 
  ggplot(aes(x=Sepal.Length,y=Petal.Length,size=Sepal.Width,col=Species))+
  geom_point()
ggplot2_scatter.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")
bar.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")
radius.png

漏斗圖

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

funnel %>% 
  e_charts() %>% 
  e_funnel(value, stage) %>% 
  e_title("Funnel")
funnel.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")
heatMap.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")
calendar.png

儀表盤

e_charts() %>% 
  e_gauge(41, "PERCENT") %>% 
  e_title("Gauge")
gauge.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")
radar.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")
cloud.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容