首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用反应性函数的数据绘制反应图

用反应性函数的数据绘制反应图
EN

Stack Overflow用户
提问于 2018-01-15 10:12:01
回答 1查看 2K关注 0票数 1

我正在使用flexdashboard在Rmarkdown文件中制作一个闪亮的应用程序,而且我很难用一个反应函数的数据制作一个‘m图。

以下是步骤/要素:

  1. 从询问日期的无线电按钮中获取输入,并打印答案(以检查他是否反应良好) ->工作
  2. 读取相关csv-文件(基于日期)并打印其内容(以检查) ->工作
  3. 用csv-文件->的内容生成的ggplot不起作用。

当我使用renderPlot()来使用一个非反应性数据集(我加载了一个数据集)来生成一个is图时,我得到了正确的结果,所以ggplot部分是很好的。

这与反应性en renderPlot组合有关,但我似乎无法弄清楚。虽然这是一个“容易”的概念,但我一直有问题,抓住工作流程,尽管看了几部电影和阅读了几个指南。

这是我目前的代码:

代码语言:javascript
代码运行次数:0
运行
复制
---
title: "Tests plot" 
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
runtime: shiny
---

```{r setup, include=FALSE}

图书馆(柔性仪表板)

图书馆(闪亮)

图书馆(Ggplot2)

代码语言:javascript
代码运行次数:0
运行
复制
Input {.sidebar}
======================================
```{r}

radioButtons(“计数”,h3(“基准”),c("01-12-2017"="T1","06-12-2017"="T2","24-12-2017"="T3"))

代码语言:javascript
代码运行次数:0
运行
复制
Data
======================================
Column
-----------------------------------------------------------------------
### Date
```{r}

反应性({ #OK )

输入$countdate

})

代码语言:javascript
代码运行次数:0
运行
复制
Column
-----------------------------------------------------------------------
### Data
```{r}

fake2 <-反应性({read.csv2(输入$可数点,".csv",sep =“”)})

fake2 #OK

代码语言:javascript
代码运行次数:0
运行
复制
Column
-----------------------------------------------------------------------
### Plot
```{r}

ggplot1 <-反应性({

renderPlot({fake2,aes(Rij,植物))+

代码语言:javascript
代码运行次数:0
运行
复制
  xlim(0,40) +
代码语言:javascript
代码运行次数:0
运行
复制
  ylim(0,50) +
代码语言:javascript
代码运行次数:0
运行
复制
  coord_equal() +
代码语言:javascript
代码运行次数:0
运行
复制
  geom_raster(aes(fill=Wtot)) +
代码语言:javascript
代码运行次数:0
运行
复制
  scale_fill_gradient(low="yellow", high="red")
代码语言:javascript
代码运行次数:0
运行
复制
})

})

ggplot1

代码语言:javascript
代码运行次数:0
运行
复制

我在情节中也试过这个:

代码语言:javascript
代码运行次数:0
运行
复制
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")
})

我的数据如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
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
...
EN

回答 1

Stack Overflow用户

发布于 2018-01-15 10:38:02

我得到了答案,感谢一个名为Florian的开发人员,但不幸的是,他删除了他的评论。

他告诉我,在处理反应性内容时,我需要使用x()而不是x,在我的例子中:ggplot(fake2()...而不是ggplot(fake2...

这一开始不起作用,但让我走上了正确的轨道!

除此之外,我还必须删除围绕reactive({})函数的renderPlot,然后它才能正常工作。

所以谢谢你的帮助佛里安!

新代码:

代码语言:javascript
代码运行次数:0
运行
复制
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")
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48260804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档