2013-09-24 18 views
1

我想運行有光澤,並在一個renderPlot中我使用ddply定義了一個數據框,並且因爲我使用了函數的輸入變量之一,所以我需要使用「這裏」功能:用局部變量繪製一個geom_rect與aes

Dates<-ddply(rawData.Agg,.(ProdID,LD_TSq),here(summarise), 
      FOD=min(Time_Seq), 
      FOD_ind=which.min(Time_Seq), 
      ... 
    ) 

在我使用這些值來繪製一些ggplots

print( ggplot(rawData.Agg,aes(Time_Seq,Stores)) + 
    geom_vline(xintercept=as.numeric(as.character(Dates$LD_TSq[1])), linetype="solid",colour="cornflowerblue", size=2) + 
... 
) 

而這個工作和訪問日期數據框精功能之後。不過,我想補充一個geom_rect,我用做:

geom_rect(aes(xmin=Dates$date_5[1], xmax=Dates$date_3[1], ymin=0, ymax=Inf),fill = "aquamarine",alpha=0.01) 

我也得到了錯誤的rstudio終端:

Listening on port 8100 
Error in eval(expr, envir, enclos) : object 'Dates' not found  

我想這是因爲日期是本地數據幀。我嘗試過定義環境,但無法讓它工作,任何人都可以告訴我如何使這個工作?

編輯: 這是一些代碼應該使用mtcars數據集複製問題。

server.R:

library(shiny) 
library(datasets) 
library(ggplot2) 
library(plyr) 
mpgData <- mtcars 
shinyServer(function(input, output) { 
    output$detailed <- renderPlot({ 
    Dates<-ddply(mpgData,.(cyl),summarise, 
       disp = ave(disp), 
       hp = ave(hp), 
       wt = ave(wt) 
    ) 
    print( ggplot(mpgData,aes(disp,hp))+ 
      geom_point(shape=17,color="black",size=2) + 
      geom_rect(aes(xmin=Dates$disp[1], xmax=200, ymin=0, ymax=Inf),fill = "aquamarine",alpha=0.01) 
    ) 
    }) 
}) 

ui.R:

library(shiny) 

shinyUI(pageWithSidebar(

    headerPanel("Launch Date"), 

    sidebarPanel( 


), 

    mainPanel(
    h3(textOutput("caption")), 
    tabsetPanel(
     tabPanel("Detailed",plotOutput("detailed")) 
    ) 
) 
)) 
+0

這是沒有整個代碼很難回答。如果在您的'geom_vline'中找到'Dates',那麼沒有理由不在'geom_rect'中... – juba

+0

@juba我現在添加了一些應該複製問題的示例代碼。 – gabrown86

回答

2

您應該刪除調用aesgeom_rect因爲Dates$disp[1]是一個常數這裏:

print( ggplot(mpgData,aes(disp,hp))+ 
     geom_point(shape=17,color="black",size=2) + 
     geom_rect(xmin=Dates$disp[1], xmax=200, ymin=0, ymax=Inf,fill = "aquamarine",alpha=0.01) 
)