shinyapps.io中的ggplot geom_point错误但不在本地机器中:找到的对象不是stat

时间:2017-04-12 07:40:06

标签: r windows ggplot2 shiny

我正在尝试使用ggplot2和geom_point在闪亮中构建一个反应式绘图应用程序。我正在使用本地数据集,从' ./ myApp / data'使用我之前编写的辅助函数并返回最终数据,在反应函数中应用一些聚类和过滤。

当我在本地机器上绘制这些数据时,该图表完全按照我的要求显示。当我使用基础绘图系统或情节时,该应用程序在shinyapps中工作。但是当我使用ggplot代码将应用程序部署到shinyapps.io时,我收到错误说

  

错误:'找到的对象不是统计信息'。

我在下面添加了代码。我将非常感谢所有的帮助。

cluster_fun <- function(data){
cluster <- Mclust(data)
//Somehow merge cluster and data to get centers, memberships etc. Nothing fancy here
return(list(data,cluster))
}

filter_cluster_data <- function(data, , min_time, max_time, sd, dbs){
//Filter data based on inputs min_time, max_time, sd, dbs. These are taken from the user in the shinyapp
temp_list <- cluster_fun(filtered_data)
return(temp_list)
}

server <- function(input, output) {
plot_data <- reactive({
dat <- obs_data[[input$tn]]
min_time <- input$time[1]*60
max_time <- input$time[2]*60
sd <- input$ts

divideByS <- input$divideByS
colorByNW <- input$colorByNW
grouped <- input$gw

cw <- filter_cluster_data(dat, input$time[1]*60, input$time[2]*60, input$ts, input$divideByS)
pre_h_rad <- cw[[1]]
cluster_members <- cw[[2]]
if(grouped){
  dat <- cluster_members
}else{
  dat <- pre_h_rad
}
return(dat)})

以下是我不断收到错误的部分。该应用程序在本地机器上工作正常。我还将img变量加载到shinyapps,这样也不是问题所在。我也删除了那些行,我仍然得到一个空的geom_point()调用同样的错误。

output$distPlot <- renderPlot({

# Grouped
if(input$gw){
  p <- ggplot(plot_data(), aes(x=center_x, y=center_y)) +
    geom_point(shape=19,      # Use solid circles
               alpha=input$alpha,
               aes(color=tgd, size=sz
               )) +
    scale_x_continuous(breaks = round(seq(0, 128, by = 10),1), limits=c(0,128)) +
    scale_y_continuous(breaks = round(seq(0, 128, by = 10),1), limits=c(0,128)) +
    scale_size_continuous(name="Number of data points in cluster", range = c(4,8))  +
    annotation_custom(rasterGrob(img, width=unit(1,"npc"), height=unit(1,"npc")), 0, 128, 0, 128)


}else{
  p <- # Single
    ggplot(plot_data(), aes_string(x="x_true", y="y_true")) +
    geom_point(shape=19,      # Use solid circles
               alpha=input$alpha, size=6,
               aes(color=tgd
               )) + geom_jitter(height = 0.01, width = 0.01) +
    scale_x_continuous(breaks = round(seq(0, 128, by = 10),1), limits=c(0,128)) +
    scale_y_continuous(breaks = round(seq(0, 128, by = 10),1), limits=c(0,128)) +
    annotation_custom(rasterGrob(img, width=unit(1,"npc"), height=unit(1,"npc")), 0, 128, 0, 128)

}
if(input$colorByNW){
  p<-p + scale_color_gradient2(name="NW",low = "red", mid = "black",high = "green",
                               midpoint = 0)
}

if(input$divideByS){
  p<-p + facet_wrap(~sw)
}
p

})

编辑:我最终使用base-R plot dur来解决这个问题,并让应用程序运行起来。 如果有人能回答这个问题,我仍然会很感激。

0 个答案:

没有答案