R ggvis输出未出现在闪亮的应用程序中

R ggvis输出未出现在闪亮的应用程序中,r,shiny,ggvis,R,Shiny,Ggvis,我不知道这里到底出了什么问题,尽管非常相似,但用户讨论ggvis+闪亮问题的堆栈上的其他线程似乎并不适用 首先,基本问题是我的ggvis可视化没有出现在闪亮的应用程序中。在我闪亮的应用程序中,我有另一个显示数据表的选项卡,它可以正常工作。另外,当我调出ggvis并使用ggplot2时(除了在ui.R中使用调用可视化的兼容函数之外,其余代码保持不变),这也可以很好地工作。我在RStudio中没有收到任何错误消息或警告。我怀疑bind_函数存在某种类型的问题,但我尝试过的任何方法似乎都不起作用 这是

我不知道这里到底出了什么问题,尽管非常相似,但用户讨论ggvis+闪亮问题的堆栈上的其他线程似乎并不适用

首先,基本问题是我的ggvis可视化没有出现在闪亮的应用程序中。在我闪亮的应用程序中,我有另一个显示数据表的选项卡,它可以正常工作。另外,当我调出ggvis并使用ggplot2时(除了在ui.R中使用调用可视化的兼容函数之外,其余代码保持不变),这也可以很好地工作。我在RStudio中没有收到任何错误消息或警告。我怀疑bind_函数存在某种类型的问题,但我尝试过的任何方法似乎都不起作用

这是我的服务器。R代码:

library(shiny)
library(ggvis)
library(dplyr)

#import file created by screener.R

final <- read.csv("final-test.csv") 


 # Define server logic required to complete visualization

shinyServer(function(input, output) {

reactviz <- reactive({allviz <- filter(final, DivYield >= input$Yield[1])
allviz <- filter(allviz, DivYield <= input$Yield[2])
allviz <- filter(allviz, PAYOUTRATIO >= input$PayoutRatio[1])
allviz <- filter(allviz, PAYOUTRATIO <= input$PayoutRatio[2])
allviz <- filter(allviz, PriceSales >= input$PriceSales[1])
allviz <- filter(allviz, PriceSales <= input$PriceSales[2])
allviz <- filter(allviz, MarketCapinMil >= input$MarketCap[1])
allviz <- filter(allviz, MarketCapinMil <= input$MarketCap[2])
allviz <- allviz[1:35,]
})

output$visplot <- renderPlot({

allviztip <- function(x) { if(is.null(x))return(NULL) 
  row <- allviz[allviz$id == x$id,c(1,4,8,10,11,12,13)]
  paste0(names(row),":",format(row),"</div>",collapse="<br />")}

reactviz() %>% ggvis(x=~PriceBook,y=~DivYield,key:=~id,size=~MarketCapinMil,shape=~PayoutCat,fill=~PriceSales) %>%
  layer_points() %>% add_tooltip(allviztip,"click") %>% add_axis('x', title='Price/Book Ratio',title_offset=60,properties=axis_props(labels=list(fontSize=12), title=list(fontSize=18))) %>% 
  add_axis("y", title = "Dividend Yield",title_offset=50,properties=axis_props(labels=list(fontSize=12), title=list(fontSize=18))) %>% 
  add_legend(scales="shape", title="Payout Ratio Category") %>% 
  add_legend(scales="fill", title="Price/Sales Ratio", properties = legend_props(legend = list(y = 100))) %>%
  add_legend(scales="size", title="Market Cap",values=c(1,25,50,100,500,1000,5000,50000,100000,300000),properties = legend_props(legend = list(y = 200))) %>% 
  set_options(duration = 0,height="auto",width="auto") %>%
  scale_numeric(property="fill",range=c("lightblue","darkblue")) %>%
  bind_shiny("visplot","visplot_ui") 

})

output$stockdata <- renderTable({

tableviz <- filter(final, DivYield >= input$Yield[1])
tableviz <- filter(tableviz, DivYield <= input$Yield[2])
tableviz <- filter(tableviz, PAYOUTRATIO >= input$PayoutRatio[1])
tableviz <- filter(tableviz, PAYOUTRATIO <= input$PayoutRatio[2])
tableviz <- filter(tableviz, PriceSales >= input$PriceSales[1])
tableviz <- filter(tableviz, PriceSales <= input$PriceSales[2])
tableviz <- filter(tableviz, MarketCapinMil >= input$MarketCap[1])
tableviz <- filter(tableviz, MarketCapinMil <= input$MarketCap[2])
tableviz


})



})
library(shiny)
library(ggvis)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

  # Application title
  titlePanel("Visual Stock Screener"),

  # Sidebar with a slider input for the number of bins
  sidebarLayout(
    sidebarPanel(
      sliderInput("MarketCap",
                  "Market Capitalization (in Tens of Millions)",
                  min = 1,
                  max = 60000,
                  value = c(100,30000)),

      sliderInput("Yield",
                  "Dividend Yield:",
                  min = 0,
                  max = 1,
                  value = c(.04,.5)),

      sliderInput("PayoutRatio",
                  "Payout Rato:",
                  min = 0,
                  max = 5,
                  value = c(0,.5)),


      sliderInput("PriceSales",
                  "Price/Sales Ratio:",
                  min = 0,
                  max = 25,
                  value = c(0,7)),


      sliderInput("PriceBook",
                  "Price/Book Ratio:",
                  min = 0,
                  max = 30,
                  value = c(0,4))

    ),

    # Show a plot of the generated distribution
    mainPanel(
      tabsetPanel(type="tab",
                  tabPanel("Plot",ggvisOutput("visplot"),uiOutput("visplot_ui")),
                  tabPanel("Data",tableOutput("stockdata")),
                  tabPanel("Documentation",includeHTML("screener-documentation.html"))
                  )


  )
)))

有没有想过我做错了什么,为什么我的想象没有出现

您能提供
final test.csv
的样本数据吗?请给我猪排,谢谢您的回复。我已将final-test.csv文件上载到此处:请告诉我是否还有其他我可以帮忙的地方。在使用ggvis绘图时,您不需要
renderPlot
——请参阅示例。@simitpatel我也有同样的问题。在我的例子中,我没有uiOutput,只是在ui.R文件中使用bind_和ggvisOutput。我要补充的是,我的所有UI元素都在加载,从我的global.R文件生成的任何数据都在加载,但没有从server.R加载任何数据,甚至像表这样的不相关数据也没有加载。此外,在我的server.R文件中不能设置断点。当我从ui.R中删除ggvisOutput时,一切正常,server.R能够运行。你在这方面运气好吗?@DonaldVetal这是几个月前的事了,所以我不能完全确定从那以后我的代码中发生了什么,但我知道现在它正在工作。我没有在我的server.R中使用reactviz()。在我的server.R中,我还删除了绘图之后和输出表之前的
)}
,这样所有内容都只能在最后关闭。对不起,如果这不清楚,我需要保持在我这里的字符限制内,所以。希望对您有所帮助。您能提供
final test.csv
Pleaseehi Pork Chop的样本数据吗?谢谢您的回复。我已将final-test.csv文件上载到此处:请告诉我是否还有其他我可以帮忙的地方。在使用ggvis绘图时,您不需要
renderPlot
——请参阅示例。@simitpatel我也有同样的问题。在我的例子中,我没有uiOutput,只是在ui.R文件中使用bind_和ggvisOutput。我要补充的是,我的所有UI元素都在加载,从我的global.R文件生成的任何数据都在加载,但没有从server.R加载任何数据,甚至像表这样的不相关数据也没有加载。此外,在我的server.R文件中不能设置断点。当我从ui.R中删除ggvisOutput时,一切正常,server.R能够运行。你在这方面运气好吗?@DonaldVetal这是几个月前的事了,所以我不能完全确定从那以后我的代码中发生了什么,但我知道现在它正在工作。我没有在我的server.R中使用reactviz()。在我的server.R中,我还删除了绘图之后和输出表之前的
)}
,这样所有内容都只能在最后关闭。对不起,如果这不清楚,我需要保持在我这里的字符限制内,所以。希望有帮助。