- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将仪表板的一些代码分解为模块。我遇到了这个问题 rCharts
代码。我可以将其作为应用程序运行,但理想情况下我想将其拆分为 UI
和 server
功能,以便我可以将它们保存在一个包中。
下面的代码显示了应用程序中的工作代码和作为模块的损坏代码。谁能指出我做错了什么?
谢谢
---
title: "Example"
output:
flexdashboard::flex_dashboard:
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)
library(rCharts)
X <- data.frame(Var1 = rep(1:10, 3),
Var2 = rep(c("control", "treatment1", "treatment2"), each = 10),
Freq = abs(rnorm(30, 0, 1))
)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Broken Code as Module
```{r}
ui2 = function(id) {
ns = NS(id)
mainPanel(plotOutput("plot1", height = "100%"),
showOutput(ns("histogram"), "nvd3"))
}
server2 = function(input, output, session) {
output$histogram <- renderChart2({
n2 <- nPlot(Freq ~ Var1, group = 'Var2', data = X, type = 'multiBarChart')
n2$set(width = session$clientData$output_plot1_width)
n2
})
}
ui2("example")
callModule(server2, "example")
```
Column {data-width=350}
-----------------------------------------------------------------------
### Working Code as App
```{r}
shinyApp(
ui = mainPanel(
plotOutput("plot2", height = "100%"),
showOutput("histogram", "nvd3")
),
server = function(input, output, session) {
output$histogram <- renderChart2({
n2 <- nPlot(Freq ~ Var1, group = 'Var2', data = X, type = 'multiBarChart')
n2$set(width = session$clientData$output_plot2_width)
n2
})
}
)
```
### Template
```{r}
```
flexdashboard
的方式可以运行
shiny
应用程序作为独立函数(注意标题中的
runtime: shiny
)。
shinyApp
包裹.
rCharts
绘制为一系列独立的 UI 和服务器功能,就像我可以使用普通
plots
一样,或者如果这是不可能的,为什么不呢?
Stand Alone Example
======================================================================
Inputs{.sidebar}
-----------------------------------------------------------------------
```{r}
## UI for choosing species
iris_plotUI = function(id) {
ns = NS(id)
# User choices for line
list_species = list(
"Setosa" = "setosa",
"Versicolor" = "versicolor",
"Virginica" = "virginica"
)
flowLayout(
# input: Tube line selection
selectInput(
ns("type"),
label = h3("Select Species:"),
choices = list_species,
selected = "setosa"
)
)
}
# server module
iris_plot = function(input, output, session) {
library(MASS)
library(data.table)
dt = data.table::copy(iris)
data.table::setDT(dt)
iris_filtered = reactive({
dt[Species == input$type]
})
output$scatter = renderPlot({
plot(iris_filtered()$Petal.Width,
iris_filtered()$Petal.Length)
})
}
# plotting module
iris_plotOutput = function(id) {
ns = NS(id)
plotOutput(ns("scatter"))
}
## call inputs in the sidebar
iris_plotUI("ns_iris")
```
Column
-----------------------------------------------------------------------
```{r}
## all server module and plot (plot in main panel)
callModule(iris_plot, "ns_iris")
iris_plotOutput("ns_iris")
```
It's a bit unclear to me, do the suffixes UI, Input, Output affect behavior or is that a suggested naming convention?
Just a suggested naming convention, they don't affect anything.
最佳答案
您的代码有两个小问题:
1.模块功能命名不符合the documentation you are referring to
A module’s UI function should be given a name that is suffixed with
Input
,Output
, orUI
Module server functions should be named like their corresponding module UI functions, but without the
Input/Output/UI
suffix
myUI()
和
my()
:
myUI = function(id) {
ns = NS(id)
mainPanel(plotOutput("plot1", height = "100%"),
showOutput(ns("histogram"), "nvd3"))
}
my = function(input, output, session) {
output$histogram <- renderChart2({
n2 <- nPlot(Freq ~ Var1, group = 'Var2', data = X, type = 'multiBarChart')
n2$set(width = session$clientData$output_plot1_width)
n2
})
}
ui()
调用。和
server()
它们本身由
shinyApp()
调用.
ui <- fluidPage(
myUI("example")
)
server <- function(input, output, session) {
callModule(my, "example")
}
shinyApp(ui, server)
关于r - Flexdashboard - 模块化 rCharts 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38349042/
无论如何,我可以组合两个 rChart,例如 gvisMerge(obj1, obj2)。我意识到 rCharts 对象是函数。有没有办法结合R函数。我正在使用一个 Shiny 的应用程序,我想在其中
我正在尝试将 RChart 嵌入到 Shiny 的应用程序中。我专门使用 nPlot 函数来创建 type=scatterChart NVD3 样式图。在下面的 NVD3 网站示例中,我有兴趣在我的
这是我的数据: rawData <- structure(list(Date = c("4/30/2015", "5/1/2015", "5/2/2015", "5/3/2015", "5/4
我有以下问题;我在 NVD3 周围使用 rCharts 包装器来生成一个简单的折线图。我希望修改默认的提示信息行为。使用 NVD3 库,我已经能够使用以下代码做到这一点; .tooltipConten
我想强制所有刻度线和刻度标签沿 rCharts 中的轴出现nPlot 来自 nvd3图书馆。我尝试了几种方法都没有成功。 这是默认行为: df var chart = nv.mode
我使用以下代码生成 rCharts Sankey 图 ( https://github.com/timelyportfolio/rCharts_d3_sankey ): if(!require(rCh
我们在 rCharts 中使用 dplot(使用 dimple 库)尝试在 R Shiny 中创建气泡图。这一切都运行良好,但我们无法将特定颜色分配给特定气泡(或下面代码中的“ channel ”)。
我有一个 RCharts 问题(更普遍的是 Highcharts 需求)。我正在尝试构建一个包含 2 个类别和每个类别 2 个条形图的柱形图,这非常简单。 但是我无法显示我想要的颜色。默认情况下,每个
最近一直在试验slidify和 rCharts .使用 slidify 生成简单图表的教程是解释性的,但我找不到任何关于 rCharts 的此类教程。 例如,我知道下面会生成一个交互式绘图 data(
我正在使用 rCharts 创建一个散点图,显示我随时间计算的评分。我有每个单独的数据点(评级)的更多信息,并且希望图表上的每个数据点链接到一个唯一的页面,其中包含有关该特定数据点的更多信息。 例如:
如何通过运行多个带有 Shiny 和 rchart 的图表来覆盖输出显示选项,以便输出结果是 2x2 矩阵类型的网格布局。 require(rCharts) require(shiny) requir
rCharts 中的任何打包图表框架是否支持制作具有不同 y 轴的两个系列的时间序列图?在这种情况下,有人可以分享一个例子吗? 我查看了那里的文档以及图表框架网站上的文档,但没有找到任何内容。 最佳答
使用现有问题的答案作为可重现代码的基础 here 我收到以下错误,不确定为什么它不起作用...这似乎是渲染时的一个普遍问题 hPlot在 shiny 中键入图表,因为我不断收到相同的错误 Listen
这是我的代码: #Start up rickshaw charts library(rCharts) df.plot <- Rickshaw$new() #Set chart parameters d
我有一个如下所示的数据框: ## Data df % group_by(color) %>% # each serie is from one color do(data = list.par
我使用以下代码通过 rCharts 创建 Sankey 图。我希望增加桑基图上打印的文本的字体大小。我找不到指导我如何执行此操作的手册。想法? rm(list = ls()) require(resh
我想知道是否有办法将使用 rCharts 生成的图表保存到文件中(作为图像)。特别是,我想将使用“传单”生成的 map 保存到文件中。 例如,可以使用以下方法生成示例 map : require(rC
我使用以下代码通过 rCharts 创建 Sankey 图。我希望增加桑基图上打印的文本的字体大小。我找不到指导我如何执行此操作的手册。想法? rm(list = ls()) require(resh
我正在探索 rCharts。我在向 Y 轴和标题添加标签时陷入困境。我是 rCharts 新手。 这是我的示例代码 require(rCharts) n2 元素插入 rCharts分区这两个模板位于
我正在尝试重现页面上的代码:http://rcharts.io/parcoords/ cars /layouts/chart.html 我是不是做错了什么? 应该是这样的结果: 最佳答案 那个 re
我是一名优秀的程序员,十分优秀!