我正在使用flexdashboard在Rmarkdown文件中制作一个闪亮的应用程序,而且我无法使用来自反应函数的数据制作ggplot。
这些是步骤/元素:
当我使用renderPlot()制作带有非反应数据集的ggplot(我加载了一个)时,我得到了正确的结果,所以ggplot-part很好。
它与反应性en renderPlot组合有关,但我似乎无法弄明白。虽然它是一个简单的"虽然观看了几部电影并阅读了几本指南,但我仍然难以掌握工作流程。
这是我目前的代码:
---
title: "Tests plot"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)
library(ggplot2)
```
Input {.sidebar}
======================================
```{r}
radioButtons("countdate",h3("Datum"), c("01-12-2017"="T1","06-12-2017"="T2","24-12-2017"="T3"))
```
Data
======================================
Column
-----------------------------------------------------------------------
### Date
```{r}
reactive({ #OK
input$countdate
})
```
Column
-----------------------------------------------------------------------
### Data
```{r}
fake2 <- reactive({read.csv2(paste(input$countdate, ".csv", sep = ""))})
fake2 #OK
```
Column
-----------------------------------------------------------------------
### Plot
```{r}
ggplot1 <- reactive({
renderPlot({ggplot(fake2, aes(Rij, Plant)) +
xlim(0,40) +
ylim(0,50) +
coord_equal() +
geom_raster(aes(fill=Wtot)) +
scale_fill_gradient(low="yellow", high="red")
})
})
ggplot1
```
我也在情节部分尝试了这个:
renderPlot({
ggplot(fake2, aes(Rij, Plant)) +
xlim(0,40) +
ylim(0,50) +
coord_equal() +
geom_raster(aes(fill=Wtot)) +
scale_fill_gradient(low="yellow", high="red")
})
我的数据如下:
Vplaat;Rij;Plant;Mtot;Wtot
A;4;10;2;20
B;4;46;5;35
C;9;5;1;14
D;9;30;0;42
E;11;17;8;85
...
答案 0 :(得分:1)
我得到了一位名叫弗洛里安的开发人员的回答,但不幸的是他删除了他的评论。
他告诉我在处理被动内容时我需要使用x()而不是x,在我的情况下:ggplot(fake2()...
而不是ggplot(fake2...
这一开始没有用,但让我走上正轨!
最重要的是,我还必须删除renderPlot函数周围的reactive({})
,然后才能工作。
谢谢你的帮助弗洛里安!
新代码:
renderPlot({
ggplot(fake2(), aes(Rij, Plant)) +
xlim(0,40) + #rijen
ylim(0,50) + #planten
coord_equal() +
geom_raster(aes(fill=Wtot)) +
scale_fill_gradient(low="yellow", high="red")
})