Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Shiny服务器中的For循环:如何不在每次按ActionButton时覆盖值?

Shiny服务器中的For循环:如何不在每次按ActionButton时覆盖值?
EN

Stack Overflow用户
提问于 2019-06-13 20:57:09
回答 1查看 56关注 0票数 0

我正在尝试创建一个应用程序,其中UI的一部分显示由用户输入的单词/字符串生成的词云。为此,我将输入传递给一个for循环,该循环假定在按下action按钮时将每个输入存储在一个空向量中。然而,我遇到了两个问题:一个是没有显示单词云,没有错误指示,另一个是for循环每次按下按钮时都会覆盖向量,这样它总是只有一个单词,而不是逐渐添加更多的单词。我认为没有显示是因为只有一个单词,而wordcloud似乎至少需要两个单词才能打印任何东西:那么我如何才能让for循环在Shiny中像预期的那样工作呢?

代码语言:javascript
运行
AI代码解释
复制
library(shiny)
library(stringr)
library(stringi)
library(wordcloud2)



ui <- fluidPage(

titlePanel("Strings Sim"),

 sidebarLayout(
 sidebarPanel(
  textInput("string.input", "Create a string:", placeholder = "string <-"),
  actionButton("go1", "GO!")
),

  mainPanel(
   textOutput("dummy"),
   wordcloud2Output("the.cloud")
  )


)
)

server <- function(input, output, session) {


 observeEvent(input$go1, {

   high.strung <- as.vector(input$string.input)
   empty.words <- NULL

for (i in high.strung) {
  empty.words <- c(empty.words, i)
}

word.vector <-matrix(empty.words, nrow = length(empty.words),ncol=1)

num.vector <- matrix(sample(1000), nrow=length(empty.words),ncol=1)

prelim <- cbind(word.vector, num.vector)

prelim.data <- as.data.frame(prelim)

prelim.data$V2 <- as.numeric(as.character(prelim.data$V2))

 output$the.cloud <- renderWordcloud2(
  wordcloud2(prelim.data)
   )

print(empty.words)
  })
  }

     shinyApp(ui=ui,server=server)

当我在没有闪亮的代码的情况下运行它时,操作就能正常工作;我基本上只使用一个字符串来代替输入,运行几次for循环来生成word cloud使用的dataframe,并获得类似于附加的图片的东西,这就是我想要的:

没有闪光的功能代码:

代码语言:javascript
运行
AI代码解释
复制
 empty.words <- NULL

 #Rerun below here to populate vector with more words and regenerate wordcloud

 high.strung <- as.vector("gumbo")

 for (i in high.strung) {
   empty.words <- c(empty.words, i)
   return(empty.words)
 }

 word.vector <-matrix(empty.words, nrow = length(empty.words),ncol=1)

 num.vector <- matrix(sample(1000), nrow=length(empty.words),ncol=1)

 prelim <- cbind(word.vector, num.vector)

 prelim.data <- as.data.frame(prelim)

 prelim.data$V2 <- as.numeric(as.character(prelim.data$V2))

 str(prelim.data)

 wordcloud2(prelim.data)

任何帮助都是非常感谢的!

编辑:使用无光泽的代码获得更多所需输出的图片。(我编辑了数据帧输出以覆盖单词cloud,只是为了在一张图片中显示云和帧,即不需要它们以这种方式显示)。每次按下按钮,输入的单词都应该添加到构建云的数据帧中,逐渐使其成为决定大小的larger.The随机数向量,而不必在每次按下时保持不变,但每个输入的单词都应该保存在向量中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 21:50:19

你的应用缺少反应性。您可以阅读有关概念here的内容。您可以输入字符串,只要数据帧中至少有两个单词,就会呈现wordcloud。如果不想拆分多个单词字符串,只需删除str_split()函数即可。

代码语言:javascript
运行
AI代码解释
复制
library(shiny)
library(stringr)
library(stringi)
library(wordcloud2)



ui <- fluidPage(

  titlePanel("Strings Sim"),

  sidebarLayout(
    sidebarPanel(
      textInput("string.input", "Create a string:", placeholder = "string <-"),
      actionButton("go1", "GO!")
    ),

    mainPanel(
      textOutput("dummy"),
      wordcloud2Output("the.cloud")
    )


  )
)

server <- function(input, output, session) {

  rv <- reactiveValues(high.strung = NULL)
  observeEvent(input$go1, {
    rv$high.strung <- c(rv$high.strung,str_split(c(input$string.input), pattern = " ") %>% unlist)
  })

  prelim.data <- reactive({
    prelim <- data.frame(
      word.vector = rv$high.strung, 
      num.vector = sample(1000, length(rv$high.strung), replace = TRUE)
    )
  })

  output$the.cloud <- renderWordcloud2(
    if (length(rv$high.strung) > 0)
      wordcloud2(prelim.data())
  )

}

shinyApp(ui=ui,server=server)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56588465

复制
相关文章
Python:matplotlib绘制条形图
条形图,也称柱状图,看起来像直方图,但完是两码事。条形图根据不同的x值,为每个x指定一个高度y,画一个一定宽度的条形;而直方图是对数据集进行区间划分,为每个区间画条形。
py3study
2020/01/16
1.4K0
Python:matplotlib绘制条形图
matplotlib 柱状图/条形图
bar()函数用来绘制柱状图(垂向的),barh()函数用来绘制条形图(水平的)。
用户6021899
2019/08/14
1.9K0
matplotlib动画制作(2)—气泡图与条形图
本公众号致力于python数据分析和可视化,不定期发布技术内容。点击上方"python数据可视化之美"关注我的公众号,原创文章将会第一时间推送,如有建议,可添加微信交流或私信留言。
python数据可视化之路
2023/10/25
2260
matplotlib动画制作(2)—气泡图与条形图
Matplotlib配置图例legend()设置透明和并排显示
下面我们将以加利福尼亚州所有城市的数据(提取码666)为例来绘图,最终效果是将绘制出各个城市的位置,同时以城市面积大小来使用不同大小的圆表示
汀丶人工智能
2022/12/21
1.7K0
Matplotlib配置图例legend()设置透明和并排显示
数据可视化-Matplotlib读取csv文件生成条形图表
今天我们学习使用Matplotlib创建条形图表,非常适合展示每个类别对应的总值方式显示数据,将学习从csv文件中加载数据,并将数据进行条形图表的方式展示,csv文件内容为统计8万多人日常工作中使用的编程语言,我们来用图形展示最流行的top 15编程排名图表。
XXXX-user
2019/08/05
4.7K0
数据可视化-Matplotlib读取csv文件生成条形图表
ggplot2优雅对并排条形图添加显著性标记
❝本节来介绍如何使用「rstatix」来进行统计分析,并使用「ggpubr」来添加显著性标记,下面通过一个小例子来进行展示;本次使用R内置数据集; 加载R包 library(tidyverse) library(rstatix) library(ggpubr) 统计分析 stat.test <- iris %>% pivot_longer(-Species) %>% filter(Species !="versicolor") %>% mutate(group=str_sub(na
R语言数据分析指南
2022/09/21
1.6K0
ggplot2优雅对并排条形图添加显著性标记
条形图以及分组条形图
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
生信喵实验柴
2022/10/25
6350
条形图以及分组条形图
Pandas绘图功能
可视化是用来探索性数据分析最强大的工具之一。Pandas库包含基本的绘图功能,可以让你创建各种绘图。Pandas中的绘图是在matplotlib之上构建的,如果你很熟悉matplotlib你会惊奇地发现他们的绘图风格是一样的。
用户3577892
2020/11/12
1.8K0
python绘制条形柱状图_Python柱状图
条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。
全栈程序员站长
2022/11/15
2.1K0
python绘制条形柱状图_Python柱状图
Python数据可视化:Matplotlib 直方图、箱线图、条形图、热图、折线图、散点图。。。
使用Python进行数据分析,数据的可视化是数据分析结果最好的展示方式,这里从Analytic Vidhya中找到的相关数据,进行一系列图形的展示,从中得到更多的经验。        强烈推荐:Analytic Vidhya
用户7886150
2021/01/17
1.2K0
条形图、带标签的条形图、有间隙的条形图。
import numpy as np import matplotlib.pyplot as plt labels = ['G1', 'G2', 'G3', 'G4', 'G5'] men_means = [20, 35, 30, 35, 27] women_means = [25, 32, 34, 20, 25] men_std = [2, 3, 4, 1, 2] women_std = [3, 5, 2, 3, 3] width = 0.35 # the width of the ba
裴来凡
2022/05/28
1K0
条形图、带标签的条形图、有间隙的条形图。
matplotlib - matplotlib 教程
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。
量子态的沐子呓
2019/12/25
4.7K0
matplotlib - matplotlib 教程
R语言 | 条形图绘制
本次内容介绍条形图的绘制,包括基本条形图、簇状条形图、频数条形图、堆积条形图、百分比条形图。
生信real
2022/03/29
2.3K0
R语言 | 条形图绘制
matplotlib入门
MATlAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、量化金融与风险管理、机器人,控制系统等领域。MATLAB在数值计算方面首屈一指,也是使用最广泛的科研绘图软件之一。优点:编程效率高 便于矩阵计算。缺点:循环效率低 封装性不好。
用户2225445
2022/11/12
4.4K0
matplotlib入门
5个快速而简单的数据可视化方法和Python代码
数据可视化是数据科学家工作的重要组成部分。在项目的早期阶段,你通常会进行探索性数据分析(EDA),以获得对数据的一些见解。创建可视化确实有助于使事情更清晰和更容易理解,特别是对于更大的、高维的数据集。在项目接近尾声时,以一种清晰、简洁和引人注目的方式展示最终结果是非常重要的,这样你的受众(通常是非技术客户)就更加容易理解。
AI算法与图像处理
2019/05/22
2.1K0
【MATLAB】进阶绘图 ( Bar 条形图 | bar 函数 | bar3 函数 | Bar 条形图样式 | 堆叠条形图 | 水平条形图 | barh 函数 )
bar 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/bar.html
韩曙亮
2023/03/29
6.1K0
【MATLAB】进阶绘图 ( Bar 条形图 | bar 函数 | bar3 函数 | Bar 条形图样式 | 堆叠条形图 | 水平条形图 | barh 函数 )
归并排序
归并排序
Java架构师必看
2021/04/30
7800
归并排序
归并排序
归并排序将两个有序的排列归并为一个有序的排列。 归并算法都基于归并这个简单的操作,即将两个有序的数组归并成一个更大的有序数组。很快人们就根据这个操作发明了一种简单的递归排序算法:归并排序。要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来:你将会看到,归并排序最 吸引人的性质是它能够保证将任意长度为,的数组排序所需时间和,成正比;它的主要缺点则是它所需的额外空间。简单的归并排序如图所示。
SakuraTears
2022/01/13
5350
归并排序
归并排序
归并排序,采用分治法。首先采用递归,把数组分成一小段有序,然后再把有序的数组一一合并。 首先看看,把有序的二个数组,合成一个的算法。 package day20180406; public class GuibingDem { public static void main(String[] args) { int[] test1= {1,3,5}; int[] test2= {-8,8,16,26,88}; int[] c=new in
热心的社会主义接班人
2018/04/27
8200
点击加载更多

相似问题

熊猫每年DateTimeIndex的大致频率

133

每年的SQL频率计数重置

11

个别事件按每年的频率划分

32

绘图频率表

11

计算值在数据框列中出现的频率

149
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档