无论如何,我可以组合两个 rCharts,比如 gvisMerge(obj1, obj2)。我意识到 rCharts 对象是函数。有没有办法组合R函数。我正在使用一个 Shiny 的应用程序,我想在其中渲染两个 rCharts。
output$chart = renderChart({
a <- rHighcharts:::Chart$new()
a$title(text = "Report 1")
a$xAxis(categories = as.character(df1$Date))
a$yAxis(title = list(text = "Report 1"))
a$data(x = df1$Date, y = df1$Val1, type = "line", name = "Values 1")
a$data(x = df1$Date, y = df1$Val2, type = "column", name = "Values 2")
a
b <- rHighcharts:::Chart$new()
b$title(text = "Report 2")
b$xAxis(categories = as.character(df2$Week))
b$yAxis(title = list(text = "Report 2"))
b$data(x = df2$Week, y = df2$Val3, type = "line", name = "Values 3")
b$data(x = df2$Week, y = df2$Val4, type = "column", name = "Values 4")
b
return(a,b) # Can we combine both and return
})
在 ui.r
output$mytabs = renderUI({
tabs = tabsetPanel(
tabPanel('Plots', h4("Plots"), chartOutput("chart"))
})
最佳答案
如果您使用的是 Shiny,我建议您使用它的布局功能来布局您的页面,然后将图表放置在您想要的位置。这是一个最小的示例(您必须正确设置图表的宽度以避免重叠)
library(shiny)
library(rCharts)
runApp(list(
ui = fluidPage(
title = 'Multiple rCharts',
fluidRow(
column(width = 5, chartOutput('chart1', 'polycharts')),
column(width = 6, offset = 1, chartOutput('chart2', 'nvd3'))
)
),
server = function(input, output){
output$chart1 <- renderChart2({
rPlot(mpg ~ wt, data = mtcars, type = 'point')
})
output$chart2 <- renderChart2({
nPlot(mpg ~ wt, data = mtcars, type = 'scatterChart')
})
}
))
关于rCharts - 像 gvisMerge 这样组合两个 rCharts,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21412831/