Javascript API 将 Tableau 集成到 Shiny 项目中
Integrate Tableau into Shiny project with Javascript API
我正在尝试将 Graph 放入我正在处理的 Shiny 项目中。我发现最方便的方法是使用 Javascript API 和 shinyjs 包。
Tableau 的 Javascript API 详细解释 here
我的脚本看起来像这样。根据说明,它是正确的,根据 shinyjs,函数名称前面必须加上 "shinyjs."
function shinyjs.init() {
var containerDiv document.getElementById("vizContainer"),
url = "https://public.tableau.com/profile/daniel.cuartas#!/vizhome/Indicadores_25/Pregunta";
var viz new tableau.Viz(containerDiv, url);
}
我的 Shiny ui.R 中包含的代码块是
ui = fluidPage(
includeScript("https://public.tableau.com/javascripts/api/tableau-2.js"),
useShinyjs(),
extendShinyjs(script = "C:/Users/Antonia/Downloads/SaberDigital/init.js"),
tags$div(id = 'vizContainer'),
js$init()
)
我得到下一个错误:
Error : shinyjs: Error parsing the JavaScript file: SyntaxError: Unexpected identifier.
我做错了什么?
您的代码存在一些问题:
1- 你必须使用 tags$head(tags$script())
告诉浏览器加载脚本而不是 includeScript
包含 JS 代码。
2- shinyjs 扩展函数必须这样写 shinyjs.init = function()
并且为了简化我内联它而不是将它放在一个单独的文件中
3- URL 格式对你来说必须是这种格式 https://public.tableau.com/views/YOUR-VISUALIZATION
4- shinyjs.init
函数必须由服务器函数调用,而不是 ui
shinyApp(ui = fluidPage(
useShinyjs(),
tags$head(tags$script(src="https://public.tableau.com/javascripts/api/tableau-2.js")),
extendShinyjs(text = "
shinyjs.init = function(){
var containerDiv = document.getElementById('vizContainer');
url = 'https://public.tableau.com/views/Indicadores_25/Pregunta';
var viz = new tableau.Viz(containerDiv, url);
}"),
tags$div(id = 'vizContainer')),
server = function(input, output, session){js$init()})
我正在尝试将 Graph 放入我正在处理的 Shiny 项目中。我发现最方便的方法是使用 Javascript API 和 shinyjs 包。
Tableau 的 Javascript API 详细解释 here 我的脚本看起来像这样。根据说明,它是正确的,根据 shinyjs,函数名称前面必须加上 "shinyjs."
function shinyjs.init() {
var containerDiv document.getElementById("vizContainer"),
url = "https://public.tableau.com/profile/daniel.cuartas#!/vizhome/Indicadores_25/Pregunta";
var viz new tableau.Viz(containerDiv, url);
}
我的 Shiny ui.R 中包含的代码块是
ui = fluidPage(
includeScript("https://public.tableau.com/javascripts/api/tableau-2.js"),
useShinyjs(),
extendShinyjs(script = "C:/Users/Antonia/Downloads/SaberDigital/init.js"),
tags$div(id = 'vizContainer'),
js$init()
)
我得到下一个错误:
Error : shinyjs: Error parsing the JavaScript file: SyntaxError: Unexpected identifier.
我做错了什么?
您的代码存在一些问题:
1- 你必须使用 tags$head(tags$script())
告诉浏览器加载脚本而不是 includeScript
包含 JS 代码。
2- shinyjs 扩展函数必须这样写 shinyjs.init = function()
并且为了简化我内联它而不是将它放在一个单独的文件中
3- URL 格式对你来说必须是这种格式 https://public.tableau.com/views/YOUR-VISUALIZATION
4- shinyjs.init
函数必须由服务器函数调用,而不是 ui
shinyApp(ui = fluidPage(
useShinyjs(),
tags$head(tags$script(src="https://public.tableau.com/javascripts/api/tableau-2.js")),
extendShinyjs(text = "
shinyjs.init = function(){
var containerDiv = document.getElementById('vizContainer');
url = 'https://public.tableau.com/views/Indicadores_25/Pregunta';
var viz = new tableau.Viz(containerDiv, url);
}"),
tags$div(id = 'vizContainer')),
server = function(input, output, session){js$init()})