无法正确执行包含两条线的绘图线图

问题描述 投票:0回答:1

我正在尝试在绘图线图中绘制2条线。当简单地绘制其中一条线时,它就可以工作;但是,当我在另一行中使用“ add_trace”时,这两条线仅沿x轴运行(类似于y = 0)。我已附上以下代码:

# #Profit Dataframe
 df5 <- data.frame(Account_Num,Account_Num_Spec,Account_Name,Billing_Num,Date,Tran_Type,Transaction_Amt2,Bar_Date, Bar_Month,Trannn) 
 df5_subset <- reactive({
   n1 <- input$PYR
   n2 <- input$PYT

   if(n2 == "Combined"){
     c5 <- subset(df5, Bar_Date == n1)
  }
else{
  c5 <- subset(df5, Bar_Date == n1 & Trannn == n2)
}

return(c5)
})     
clarify <- reactive({
check <- input$PYT

if(check == "Combined"){

  jan_dataB <- subset(df5_subset(), Bar_Month == 01, Tran_Type == "Bill")
  feb_dataB <- subset(df5_subset(), Bar_Month == 02, Tran_Type == "Bill")
  mar_dataB <- subset(df5_subset(), Bar_Month == 03, Tran_Type == "Bill")
  apr_dataB <- subset(df5_subset(), Bar_Month == 04, Tran_Type == "Bill")
  may_dataB <- subset(df5_subset(), Bar_Month == 05, Tran_Type == "Bill")
  jun_dataB <- subset(df5_subset(), Bar_Month == 06, Tran_Type == "Bill")
  jul_dataB <- subset(df5_subset(), Bar_Month == 07, Tran_Type == "Bill")
  aug_dataB <- subset(df5_subset(), Bar_Month == 08, Tran_Type == "Bill")
  sep_dataB <- subset(df5_subset(), Bar_Month == 09, Tran_Type == "Bill")
  oct_dataB <- subset(df5_subset(), Bar_Month == 10, Tran_Type == "Bill")
  nov_dataB <- subset(df5_subset(), Bar_Month == 11, Tran_Type == "Bill")
  dec_dataB <- subset(df5_subset(), Bar_Month == 12, Tran_Type == "Bill")
  jan_dataR <- subset(df5_subset(), Bar_Month == 01, Tran_Type == "Receipt")
  feb_dataR <- subset(df5_subset(), Bar_Month == 02, Tran_Type == "Receipt")
  mar_dataR <- subset(df5_subset(), Bar_Month == 03, Tran_Type == "Receipt")
  apr_dataR <- subset(df5_subset(), Bar_Month == 04, Tran_Type == "Receipt")
  may_dataR <- subset(df5_subset(), Bar_Month == 05, Tran_Type == "Receipt")
  jun_dataR <- subset(df5_subset(), Bar_Month == 06, Tran_Type == "Receipt")
  jul_dataR <- subset(df5_subset(), Bar_Month == 07, Tran_Type == "Receipt")
  aug_dataR <- subset(df5_subset(), Bar_Month == 08, Tran_Type == "Receipt")
  sep_dataR <- subset(df5_subset(), Bar_Month == 09, Tran_Type == "Receipt")
  oct_dataR <- subset(df5_subset(), Bar_Month == 10, Tran_Type == "Receipt")
  nov_dataR <- subset(df5_subset(), Bar_Month == 11, Tran_Type == "Receipt")
  dec_dataR <- subset(df5_subset(), Bar_Month == 12, Tran_Type == "Receipt")

  yloc1B <- sum(as.numeric(as.character(jan_dataB$Transaction_Amt2)))
  yloc2B <- sum(as.numeric(as.character(feb_dataB$Transaction_Amt2)))
  yloc3B <- sum(as.numeric(as.character(mar_dataB$Transaction_Amt2)))
  yloc4B <- sum(as.numeric(as.character(apr_dataB$Transaction_Amt2)))
  yloc5B <- sum(as.numeric(as.character(may_dataB$Transaction_Amt2)))
  yloc6B <- sum(as.numeric(as.character(jun_dataB$Transaction_Amt2)))
  yloc7B <- sum(as.numeric(as.character(jul_dataB$Transaction_Amt2)))
  yloc8B <- sum(as.numeric(as.character(aug_dataB$Transaction_Amt2)))
  yloc9B <- sum(as.numeric(as.character(sep_dataB$Transaction_Amt2)))
  yloc10B <- sum(as.numeric(as.character(oct_dataB$Transaction_Amt2)))
  yloc11B <- sum(as.numeric(as.character(nov_dataB$Transaction_Amt2)))
  yloc12B <- sum(as.numeric(as.character(dec_dataB$Transaction_Amt2)))
  yloc1R <- sum(as.numeric(as.character(jan_dataR$Transaction_Amt2)))
  yloc2R <- sum(as.numeric(as.character(feb_dataR$Transaction_Amt2)))
  yloc3R <- sum(as.numeric(as.character(mar_dataR$Transaction_Amt2)))
  yloc4R <- sum(as.numeric(as.character(apr_dataR$Transaction_Amt2)))
  yloc5R <- sum(as.numeric(as.character(may_dataR$Transaction_Amt2)))
  yloc6R <- sum(as.numeric(as.character(jun_dataR$Transaction_Amt2)))
  yloc7R <- sum(as.numeric(as.character(jul_dataR$Transaction_Amt2)))
  yloc8R <- sum(as.numeric(as.character(aug_dataR$Transaction_Amt2)))
  yloc9R <- sum(as.numeric(as.character(sep_dataR$Transaction_Amt2)))
  yloc10R <- sum(as.numeric(as.character(oct_dataR$Transaction_Amt2)))
  yloc11R <- sum(as.numeric(as.character(nov_dataR$Transaction_Amt2)))
  yloc12R <- sum(as.numeric(as.character(dec_dataR$Transaction_Amt2)))


xloc <- list("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC")   
ylocB <- list(yloc1B,yloc2B,yloc3B,yloc4B,yloc5B,yloc6B,yloc7B,yloc8B,yloc9B,yloc10B,yloc11B,yloc12B)
ylocR <- list(yloc1R,yloc2R,yloc3R,yloc4R,yloc5R,yloc6R,yloc7R,yloc8R,yloc9R,yloc10R,yloc11R,yloc12R)

data <- data.frame(xloc,ylocB,ylocR)

p <- plot_ly(data, x=~xloc, y=~ylocB, name ='Billed', type = 'scatter', mode='lines',fill='tozeroy') %>%
  add_trace(data, x=~xloc, y=~ylocR, name = "Received", type = 'scatter', mode='lines',fill='tozeroy', secondary_y=TRUE) %>%
  layout(title= paste(LGT()), xaxis= list(title=paste(lgt())), yaxis= list(title="Amount ($)"))

我找不到我没有正确编码的位置。

r shiny plotly linegraph
1个回答
0
投票

如果没有可复制的数据,很难确定问题到底出在哪里。但是,似乎您需要确定x轴值的顺序。但首先,请使用矢量而不是列表创建数据框。

xloc <- c("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC")   
ylocB <- c(yloc1B,yloc2B,yloc3B,yloc4B,yloc5B,yloc6B,yloc7B,yloc8B,yloc9B,yloc10B,yloc11B,yloc12B)
ylocR <- c(yloc1R,yloc2R,yloc3R,yloc4R,yloc5R,yloc6R,yloc7R,yloc8R,yloc9R,yloc10R,yloc11R,yloc12R)

data <- data.frame(xloc,ylocB,ylocR)

data$xloc <- factor(data$xloc, levels = data[["xloc"]])

此后,您应该可以绘图。

© www.soinside.com 2019 - 2024. All rights reserved.