R语言Shiny App和 交互式绘图echarts4r包Advanced深探
更新
library(shiny)
ui <- fluidPage(fluidRow(column(12, actionButton("update", "Update"))),fluidRow(column(12, echarts4rOutput("plot")))
)server <- function(input, output){data <- eventReactive(input$update, {Sys.sleep(1) # sleep one second to show loadingdata.frame(x = 1:10,y = rnorm(10))})output$plot <- renderEcharts4r({data() |> e_charts(x) |> e_bar(y) |> e_show_loading()})
}shinyApp(ui, server)
基本应用
library(shiny)
library(echarts4r)ui <- fluidPage(actionButton("add", "Add Data to y"),echarts4rOutput("plot"),verbatimTextOutput("selected")
)server <- function(input, output, session){data <- data.frame(x = rnorm(10, 5, 3), y = rnorm(10, 50, 12), z = rnorm(10, 50, 5))react <- eventReactive(input$add, {set.seed(sample(1:1000, 1))data.frame(x = rnorm(10, 5, 2), y = rnorm(10, 50, 10))})output$plot <- renderEcharts4r({data |> e_charts(x) |> e_scatter(y) |>e_scatter(z) |> e_brush(throttleDelay = 1000)})observeEvent(input$add, {echarts4rProxy("plot") |> e_append1_p(0, react(), x, y)})output$selected <- renderPrint({input$plot_brush})}shinyApp(ui, server)
Shiny App
library(shiny)
library(echarts4r)ui <- fluidPage(fluidRow(column(3, echarts4rBoxOutput("box1")),column(3, echarts4rBoxOutput("box2")),column(3, echarts4rBoxOutput("box3")),column(3, echarts4rBoxOutput("box4")))
)server <- function(input, output){output$box1 <- renderEcharts4rBox({echarts4rBox(cars, speed, dist, "Cake", type = "bar")})output$box2 <- renderEcharts4rBox({echarts4rBox(cars, speed, dist, "Pears", type = "area")})output$box3 <- renderEcharts4rBox({echarts4rBox(cars, speed, dist, "More Cakes!", type = "step")})output$box4 <- renderEcharts4rBox({echarts4rBox(cars, dist, speed, "Misc", type = "scatter", title_args = list(left = "right"))})
}shinyApp(ui, server)
分类
时间线
library(echarts4r)iris |> group_by(Species) |> e_charts(Sepal.Length) |> e_line(Sepal.Width) |> e_title("Grouped data")
library(echarts4r)iris |> group_by(Species) |> e_charts(Sepal.Length, timeline = TRUE) |> e_line(Sepal.Width) |> e_title("Timeline")
存储栈
library(echarts4r)df <- data.frame(x = LETTERS[1:10],a = runif(10),b = runif(10),c = runif(10),d = runif(10)
)df |> e_charts(x) |> e_bar(a, stack = "grp") |> e_bar(b, stack = "grp") |> e_bar(c, stack = "grp2") |> e_bar(d, stack = "grp2")
散点图
library(echarts4r)iris |> group_by(Species) |> e_charts(Sepal.Length) |> e_scatter(Petal.Length, Sepal.Width)
library(echarts4r)my_scale <- function(x){scales::rescale(x, to = c(5, 30))
}iris |> group_by(Species) |> e_charts(Sepal.Length) |> e_scatter(Petal.Length, Sepal.Width, scale = my_scale)
library(echarts4r)iris |> group_by(Species) |> e_charts(Sepal.Length) |> e_scatter(Petal.Length, Sepal.Width, scale = \(x) scales::rescale(x, to = c(5, 30)))
library(echarts4r)iris |> group_by(Species) |> e_charts(Sepal.Length) |> e_scatter(Petal.Length, symbol_size = 15)
library(echarts4r)
iris |> group_by(Species) |> e_charts(Sepal.Length) |> e_scatter(Petal.Length, Sepal.Width, scale = log1p, symbol_size = 10)、
library(echarts4r)
echart <- mtcars |> e_charts(mpg) |> e_scatter(qsec, wt, scale = e_scale) |> e_legend(show = FALSE)echart |> e_visual_map(wt, scale = e_scale)
library(echarts4r)
mtcars |> e_charts(mpg) |> e_scatter(qsec, wt, scale = NULL, scale_js = "function(data){ return data[3] * 3;}") |> e_legend(show = FALSE) |> e_visual_map(wt, scale = NULL)
library(echarts4r)
mtcars |> e_charts(cyl) |> e_scatter(drat, symbol_size = 4) |> e_scatter(drat, jitter_factor = 2, symbol_size = 6,name = "noisy")
热点图
library(echarts4r)
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()
#> `summarise()` has grouped output by 'x'. You can override using the `.groups`
#> argument.matrix |> e_charts(x) |> e_heatmap(y, z) |> e_visual_map(z)
日历图
library(echarts4r)
dates <- seq.Date(as.Date("2018-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)
library(echarts4r)
df <- data.frame(x = 1:10, y = seq(1, 20, by = 2))df |> e_charts(x) |> e_line(y)
library(echarts4r)
df |> e_charts(x) |> e_polar() |> e_angle_axis() |> e_radius_axis() |> e_line(y, coord_system = "polar", smooth = TRUE)
定制化坐标轴
旋转坐标轴
library(echarts4r)
USArrests |> e_charts(Assault) |> e_line(Murder, smooth = TRUE) |> e_line(Rape, y_index = 1) |> # add secondary axise_y_axis(splitLine = list(show = FALSE)) # hide split lines on first Y axis
library(echarts4r)
data.frame(x = LETTERS[1:5],y = runif(5, 1, 15)
) |> e_charts(x) |> e_bar(y, name = "flipped") |> e_flip_coords() # flip axis
library(echarts4r)
USArrests |> tibble::rownames_to_column("State") |> dplyr::mutate(Rape = -Rape) |> e_charts(State) |> e_area(Murder) |>e_bar(Rape, name = "Sick basterd", x_index = 1) |> # second y axis e_mark_line("Sick basterd", data = list(type = "average")) |> e_mark_point("Murder", data = list(type = "min"))
寻找参数
library(echarts4r)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df <- tibble(name = "earth", # 1st levelchildren = list(tibble(name = c("land", "ocean"), # 2nd levelchildren = list(tibble(name = c("forest", "river")), # 3rd level tibble(name = c("fish", "kelp"),children = list(tibble(name = c("shark", "tuna"), # 4th level NULL # kelp))))))
)df |> e_charts() |> e_tree()
转化成半径
library(echarts4r)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df <- tibble(name = "earth", # 1st levelchildren = list(tibble(name = c("land", "ocean"), # 2nd levelchildren = list(tibble(name = c("forest", "river")), # 3rd level tibble(name = c("fish", "kelp"),children = list(tibble(name = c("shark", "tuna"), # 4th level NULL # kelp))))))
)df |> e_charts() |> e_tree(layout = "radial")
显示标签
library(echarts4r)
library(dplyr)
USArrests |> tibble::rownames_to_column("State") |> dplyr::slice(1:10) |> e_charts(State) |> e_area(Murder, label = list(normal = list(show = TRUE)))
嵌套数据
library(echarts4r)
# add columns to iris
iris_dat <- iris |> dplyr::mutate(show = TRUE, # to show the labelsfontSize = exp(Sepal.Length) / 10, # font size will correspond to Sepal.Lengthcolor = sample(c("red", "black", "blue"), dplyr::n(), replace = TRUE) # assign a random color to the label)iris_dat |> dplyr::slice(1:10) |> # simplify the graph. e_charts(Sepal.Width) |> e_line(Sepal.Length) |> e_add_nested("label", show, fontSize, color) |> # add our columns to "label"e_x_axis(min = 2.5)
烟囱
集合List
library(echarts4r)
funnel <- data.frame(stage = c("View", "Click", "Purchase"), value = c(80, 30, 20),color = c("blue", "red", "green")
)funnel |> e_charts() |> e_funnel(value, stage) |> e_add_nested("itemStyle", color)
参考资料:
https://echarts4r.john-coene.com/articles/advanced.html
R语言Shiny App和 交互式绘图echarts4r包Advanced深探相关推荐
- R语言构建logistic回归模型:WVPlots包PRTPlot函数可视化获取logistic回归模型的最优阈值、优化(precision、enrichment)和recall之间的折衷
R语言构建logistic回归模型:WVPlots包PRTPlot函数可视化获取logistic回归模型的最佳阈值(改变阈值以优化精确度(precision.enrichment)和查全率(recal ...
- R语言Logistic回归模型案例基于AER包的affair数据分析
R语言Logistic回归模型案例基于AER包的affair数据 目录 R语言Logistic回归模型案例基于AER包的affair数据 #数据加载及目标变量二值化
- R语言泊松回归模型案例:基于AER包的affair数据分析
R语言泊松回归模型案例:基于AER包的affair数据分析 目录 R语言泊松回归模型案例基于AER包的affair数据分析 #数据加载
- 【R语言实例】igraph — 网络分析与可视化包(1)
作者简介: 本文作者系大学统计学专业教师,多年从事统计学的教学科研工作,在随机过程.统计推断.机器学习领域有深厚的理论积累与应用实践. igraph是一套用于网络分析与可视化的r包,它以高效.便捷.使 ...
- R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、设置seasonal参数指定在模型中是否包含季节信息
R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合.模型阶数(p,d,q).设置seasonal参数指定在模型中是否包含季节信息 目录
- R语言使用ggplot2可视化:使用ggpattern包在分组条形图中添加自定义条纹图案、添加阴影、条纹或其他图案或纹理(add hatches, stripes or another pattern
R语言使用ggplot2可视化:使用ggpattern包在分组条形图中添加自定义条纹图案.添加阴影.条纹或其他图案或纹理(add hatches, stripes or another pattern ...
- 《R语言与数据挖掘》⑤高级绘图工具【lattice包】【ggplot2】【交互式】
书籍:<R语言与数据挖掘> 作者:张良均 出版社:机械工业出版社 ISBN:9787111540526 本书由北京华章图文信息有限公司授权杭州云悦读网络有限公司电子版制作与发行 版权所有· ...
- [译]R语言——Shiny框架之入门(三):如何启动一个Shiny应用
如何启动一个Shiny应用 在前两篇文章里[1,2],你已经可以通过调用runApp()函数来运行样例应用了.这个函数运行了应用并将它在你的默认浏览器里显示了出来.这个函数的调用是模块化的(block ...
- [译]R语言——Shiny框架之入门(二):如何构建一个Shiny应用
注:以下内容是我个人翻译自Rstudio官网的Shiny教程,原文地址:http://shiny.rstudio.com/articles/build.html 水平有限,敬请谅解 在开始之前,先简单 ...
最新文章
- 判断路径下文件是否存在
- 此时不应有java_Java 锁的知识总结及实例代码
- 驱动备份工具哪个好_大庆seo排名优化推广公司工具哪个好
- Linux学习系列之Linux入门(一)linux安装与入门
- Refusing to install package with name “vue-i18n“ under a package
- 卡尔曼滤波——16.新的均值和方差
- 去掉 edittext 长按全选_铁力连栋温室大棚骨架质量优规格全免费报价按需定制...
- 转置卷积(Transposed Convolution)
- 26个英语字母表及字母音标
- Win10提示未插入扬声器或耳机
- TARA从3.4.1更新到3.5.7后项目运行出现app.js错误: TypeError: Cannot read property ‘isBatchingLegacy‘ of undefined
- 国内公有云大厂核心技术解剖
- h5 ios Safair下载文件自动添加.html导致文件乱码问题,ios不能使用接口播放视频的问题
- 单点故障解决方案介绍smart link/monitor link /stp
- 适合讲给女朋友听的极品笑话
- UCOSii和Linux的区别和联系
- 世界最快超级计算机富岳系统采用DDN公司的存储产品
- 机器视觉问题:工业普通定焦镜头如何计算景深?景深计算
- 如何快速掌握正确的UI配色方案?6种技巧不容错过!
- 初学者如何学习C++的50条