ioslides 中闪亮的应用程序大小
Shiny app size in ioslides
我在这里使用 ScatterD3 制作了一个基本的闪亮应用程序,但是当我尝试将它嵌入到 ioslides
演示文稿中时,它被截断并出现滚动条。幻灯片可以很容易地容纳整个应用程序(我已经测量过大小),但 ioslides
或 shiny
选择将其分段。我需要情节显示这个大小,因为在我的真实项目中,我在图例中有一个很长的列表,需要 720 像素左右的高度。
这是代码:
编辑 使用 Joris 的建议并删除不必要的 wellPanel,我将高度重置为 550,这在滑动。我仍然得到这个滚动条,感觉必须有一种方法来调整呈现的高度。本质上,我想使用整张幻灯片并用这个应用程序填充它。
```{r, echo=FALSE}
library(scatterD3)
ui <- fluidPage(
scatterD3Output("distPlot", height = "550px")
)
server <- function(input, output) {
output$distPlot <- renderScatterD3({
mtcars$names <- rownames(mtcars)
scatterD3(data = mtcars, x = wt, y = mpg, lab = names,
col_var = cyl, symbol_var = am,
xlab = "Weight", ylab = "Mpg", col_lab = "Cylinders",
symbol_lab = "Manual transmission")
})
}
shinyApp(ui = ui, server = server)
```
我尝试将 options = list(height = 1080)
添加到 shinyApp 调用中。我还查看了 ,设置 <div style="margin-left:-65px; margin-top:-70px; width:112%; height:130%;">
启用了我想要的大部分功能,但它仍然拒绝调整对我来说最重要的高度参数。我尝试添加自定义 CSS 以使溢出可见,但这些解决方案中的 none 似乎有效。
您应该正确设置您的页面,以便控件实际位于绘图旁边,并使用函数 scatterD3Output
的 width
和 height
参数。
请记住,尽管幻灯片看起来足够大,但您仍需要为标题保留一些 space。因此,对于 720 像素的高度,绘图实际上不适合幻灯片。
编辑:Ioslides 还允许您使用自定义 css 文件。 iframe 是构建幻灯片内容的实际框架。操纵那个会给你更多 space。接下来,您可以调整幻灯片本身的大小以及水平和垂直位置。
将以下内容放入名为 temp.css
的文件中,该文件与 Rmd 文件位于同一目录中:
slides > slide {
width: 1000px;
height: 800px;
padding: 10px 20px;
left: 46%;
top: 45%;
}
iframe {
height: 900px;
}
并将 css: temp.css
添加到您的 .Rmd 文件中,如下所示:
---
runtime: shiny
output:
ioslides_presentation:
css: temp.css
---
##
```{r, echo=FALSE}
library(scatterD3)
ui <- fluidPage(
fluidRow(
column(4,
wellPanel(
selectInput("Living", "Choose Life",
choices = c("Life", "Death"))
)
),
column(8,
scatterD3Output("distPlot", height = "550px"))
)
)
server <- function(input, output) {
output$distPlot <- renderScatterD3({
mtcars$names <- rownames(mtcars)
scatterD3(data = mtcars, x = wt, y = mpg, lab = names,
col_var = cyl, symbol_var = am,
xlab = "Weight", ylab = "Mpg", col_lab = "Cylinders",
symbol_lab = "Manual transmission")
})
}
shinyApp(ui = ui, server = server)
```
您可以尝试这些以获得更好的合身性。
旁注:在许多情况下,完全没有必要创建整个应用程序。如果您只想使用一个简单的绘图进行更新,您可以将 UI 和服务器端分别放在自己的 R 块中,并使用 outputArgs
来操作所有输出函数。这不适用于 scatterD3
包,但无论如何知道它是一件好事。
---
runtime: shiny
output: ioslides_presentation
---
## John
```{r, echo=FALSE}
library(scatterD3)
```
```{r, echo = FALSE}
selectInput("Living", "Choose Life",
choices = c("Life", "Death"))
```
```{r echo = FALSE, width = "80%", height = "400px"}
renderPlot({
mtcars$names <- rownames(mtcars)
plot(mpg~wt, data = mtcars)
}, outputArgs = list(width = "80%",height="400px"))
```
我在这里使用 ScatterD3 制作了一个基本的闪亮应用程序,但是当我尝试将它嵌入到 ioslides
演示文稿中时,它被截断并出现滚动条。幻灯片可以很容易地容纳整个应用程序(我已经测量过大小),但 ioslides
或 shiny
选择将其分段。我需要情节显示这个大小,因为在我的真实项目中,我在图例中有一个很长的列表,需要 720 像素左右的高度。
编辑 使用 Joris 的建议并删除不必要的 wellPanel,我将高度重置为 550,这在滑动。我仍然得到这个滚动条,感觉必须有一种方法来调整呈现的高度。本质上,我想使用整张幻灯片并用这个应用程序填充它。
```{r, echo=FALSE}
library(scatterD3)
ui <- fluidPage(
scatterD3Output("distPlot", height = "550px")
)
server <- function(input, output) {
output$distPlot <- renderScatterD3({
mtcars$names <- rownames(mtcars)
scatterD3(data = mtcars, x = wt, y = mpg, lab = names,
col_var = cyl, symbol_var = am,
xlab = "Weight", ylab = "Mpg", col_lab = "Cylinders",
symbol_lab = "Manual transmission")
})
}
shinyApp(ui = ui, server = server)
```
我尝试将 options = list(height = 1080)
添加到 shinyApp 调用中。我还查看了 <div style="margin-left:-65px; margin-top:-70px; width:112%; height:130%;">
启用了我想要的大部分功能,但它仍然拒绝调整对我来说最重要的高度参数。我尝试添加自定义 CSS 以使溢出可见,但这些解决方案中的 none 似乎有效。
您应该正确设置您的页面,以便控件实际位于绘图旁边,并使用函数 scatterD3Output
的 width
和 height
参数。
请记住,尽管幻灯片看起来足够大,但您仍需要为标题保留一些 space。因此,对于 720 像素的高度,绘图实际上不适合幻灯片。
编辑:Ioslides 还允许您使用自定义 css 文件。 iframe 是构建幻灯片内容的实际框架。操纵那个会给你更多 space。接下来,您可以调整幻灯片本身的大小以及水平和垂直位置。
将以下内容放入名为 temp.css
的文件中,该文件与 Rmd 文件位于同一目录中:
slides > slide {
width: 1000px;
height: 800px;
padding: 10px 20px;
left: 46%;
top: 45%;
}
iframe {
height: 900px;
}
并将 css: temp.css
添加到您的 .Rmd 文件中,如下所示:
---
runtime: shiny
output:
ioslides_presentation:
css: temp.css
---
##
```{r, echo=FALSE}
library(scatterD3)
ui <- fluidPage(
fluidRow(
column(4,
wellPanel(
selectInput("Living", "Choose Life",
choices = c("Life", "Death"))
)
),
column(8,
scatterD3Output("distPlot", height = "550px"))
)
)
server <- function(input, output) {
output$distPlot <- renderScatterD3({
mtcars$names <- rownames(mtcars)
scatterD3(data = mtcars, x = wt, y = mpg, lab = names,
col_var = cyl, symbol_var = am,
xlab = "Weight", ylab = "Mpg", col_lab = "Cylinders",
symbol_lab = "Manual transmission")
})
}
shinyApp(ui = ui, server = server)
```
您可以尝试这些以获得更好的合身性。
旁注:在许多情况下,完全没有必要创建整个应用程序。如果您只想使用一个简单的绘图进行更新,您可以将 UI 和服务器端分别放在自己的 R 块中,并使用 outputArgs
来操作所有输出函数。这不适用于 scatterD3
包,但无论如何知道它是一件好事。
---
runtime: shiny
output: ioslides_presentation
---
## John
```{r, echo=FALSE}
library(scatterD3)
```
```{r, echo = FALSE}
selectInput("Living", "Choose Life",
choices = c("Life", "Death"))
```
```{r echo = FALSE, width = "80%", height = "400px"}
renderPlot({
mtcars$names <- rownames(mtcars)
plot(mpg~wt, data = mtcars)
}, outputArgs = list(width = "80%",height="400px"))
```