【发布时间】:2021-09-27 20:55:05
【问题描述】:
如果我有一个包含值的数据表 (DT),我可以根据数据表中的这些值在蓝色区域绘制一个 plotly(条形图)吗?例如对于变量“Value2”,我们有一个条形图。
我看到this post,我希望可以通过在上面的R代码中添加一些JavaScript代码来完成。
# R code
library(dplyr)
library(plotly)
library(DT)
library(crosstalk)
library(summarywidget)
library(htmltools)
data_2<-structure(list(ID = 1:8, Name1 = c("A", "A", "A", "C", "B", "B",
"A", "B"), Name2 = c("a", "b", "b", "a", "b", "a", "b", "c"),
Value1 = c(12, 43, 54, 34, 23, 77, 44, 22), Value2 = c(0,
1, 1, 0, 0, 0, 0, 2), Lat = c(51.1, 51.6, 57.3, 52.4, 56.3,
54.3, 60.4, 49.2), Lon = c(5, -3, -2, -1, 4, 3, -5, 0), lab_DB = c("blue",
"blue", "blue", "green", "red", "red", "blue", "red")), class = "data.frame", row.names = c(NA,-8L))
sdf <- SharedData$new(data_2, ~ID)
DT1<-datatable(
sdf, filter = 'top',
extensions = c('Select', 'Buttons'), selection = 'none', options = list(select = list(style = 'os', items = 'row'),dom = 'Bfrtip',autoWidth = TRUE,buttons = list('copy' ,
list(extend = 'collection', buttons = c('csv', 'excel', 'pdf', 'print'),
text = 'Download')
)),caption=tags$caption("Value2: #0: ",summarywidget(sdf , selection=~Value2==0)
," Value2: #1: ",summarywidget(sdf , selection=~Value2==1)
," Value2: #2: ",summarywidget(sdf , selection=~Value2==2)
))
bscols(widths = c(6, 4), DT1, div(style = css(width="100%", height="400px", background_color="blue")))
预期的条形图应该是这样的
即变量“Value2”的简单条形图。
【问题讨论】:
-
请检查更新的代码。
-
如果您了解 R 并且对学习 Javascript 不感兴趣,难道不是一个闪亮的应用程序可以解决这个问题吗?网上有几个例子。
-
@MarkNeal,我认为最好的方法是使用闪亮的应用程序。不过可惜我不熟悉!
-
Mastering shiny 可在网络上免费获得,两小时内您就可以掌握基本知识。根据我的经验,比破解 JavaScript 更容易!
标签: javascript r crosstalk