我尝试用
创建闪亮的应用程序 rpivotTable
和nvd3 rcharts
一切正常,但是当我试图从枢轴显示任何图表时 我收到错误
An error occurred rendering the PivotTable results.
但是如果我只使用rpivotTable
图表在枢轴中工作,我认为在一个闪亮的应用中使用rpivotTable
和nvd3 rcharts
时会出现问题。
UI
library(shiny)
library(rCharts)
library(rpivotTable)
shinyUI(fluidPage(
showOutput('plot1',lib = "nvd3"),
rpivotTableOutput('pivot1', width = "100%", height = "500px"))
)
服务器
library(shiny)
library(rCharts)
library(rpivotTable)
df=data.frame(A=c(1:10),B=c(-10:-1),C=c("x",rep(c("x","y","z"),3)))
shinyServer(function(input, output, session) {
output$pivot1 <- renderRpivotTable({
rpivotTable(data =df ,
width="100%", height="500px")
})
output$plot1=renderChart2({
myform <- as.formula(paste('A','~','B'))
n2 <- nPlot(myform, group ="C", data = df, type = 'multiBarChart')
n2$chart(margin = list(left = 100))
n2$chart(reduceXTicks = F)
n2$set(width = 800, height = 500)
print(n2)
})
})
当我看到检查时,我看到了
TypeError: a.axisTimeFormat.multi is not a function
at e.i.initParams (c3.min.js:1)
at e.i.init (c3.min.js:1)
at new d (c3.min.js:1)
at Object.k.generate (c3.min.js:1)
at Object.renderer (c3_renderers.coffee:129)
at t.fn.pivot (pivot.coffee:546)
at pivot.coffee:835
有办法解决吗?
包装版本:
rpivotTable_0.1.5.7
rCharts_0.4.2
shiny_0.12.2.9005
谢谢!
答案 0 :(得分:3)
正如评论中所指出的,这是由于n3
库的双重加载。要避免此问题(这不仅仅是修复),您可以在rcharts
中绘制iframe
框,以避免js
和css
问题。
为此,您可以使用uiOutput
/ renderUI
作为闪亮部分,show
输出rCharts
。
以下是一个例子:
library(shiny)
library(rCharts)
library(rpivotTable)
df=data.frame(A=c(1:10),B=c(-10:-1),C=c("x",rep(c("x","y","z"),3)))
ui <-shinyUI(fluidPage(
uiOutput('plot1'),
rpivotTableOutput('pivot1')
))
server <- shinyServer(function(input, output, session) {
output$pivot1 <- renderRpivotTable({
rpivotTable(data =df)
})
output$plot1=renderUI({
myform <- as.formula(paste('A','~','B'))
n2 <- nPlot(myform, group ="C", data = df, type = 'multiBarChart')
n2$chart(margin = list(left = 100))
n2$chart(reduceXTicks = F)
HTML(paste(capture.output(n2$show('iframesrc', cdn = TRUE)), collapse = '\n'))
})
})
shinyApp(ui,server)