我已经构建了一个快速闪亮的应用程序,它从数据库中获取一些滴答作响的历史时间序列,并使用plotly将它们显示在图表中。由于一个奇怪的原因,图表没有显示在Chrome或Mozilla中,但它似乎在Safari& IE浏览器。我似乎无法在网上找到太多运气。我读过某个地方,说使用UpdateselectInput(),服务器= TRUE,但它没有帮助。我有什么问题吗?
提前感谢您的帮助。
链接到应用:http://13.58.91.231:3838/App/
示例数据:(我的数据更大,过去6个月有超过20种货币,每个货币每天有8个新数据点被添加到数据库中)
Currency Buy Sell Date exchange_code saraf
USD 4591 4601 18/02/18 18:37 S1 صرافی ۱
USD 4591 4601 18/02/18 21:29 S1 صرافی ۱
USD 4591 4601 18/02/18 21:30 S1 صرافی ۱
USD 4591 4601 18/02/18 21:31 S1 صرافی ۱
USD 4591 4601 18/02/18 21:32 S1 صرافی ۱
USD 4591 4601 18/02/18 21:33 S1 صرافی ۱
USD 4591 4601 18/02/18 21:34 S1 صرافی ۱
USD 4591 4601 19/02/18 05:00 S1 صرافی ۱
USD 4591 4601 19/02/18 06:00 S1 صرافی ۱
USD 4591 4601 19/02/18 07:00 S1 صرافی ۱
USD 4578 4587 19/02/18 08:00 S1 صرافی ۱
USD 4578 4588 19/02/18 09:00 S1 صرافی ۱
USD 4549 4559 19/02/18 10:00 S1 صرافی ۱
USD 4540 4550 19/02/18 11:00 S1 صرافی ۱
USD 4534 4544 19/02/18 12:00 S1 صرافی ۱
USD 4528 4538 19/02/18 13:00 S1 صرافی ۱
USD 4528 4538 19/02/18 14:00 S1 صرافی ۱
USD 4528 4538 19/02/18 15:00 S1 صرافی ۱
USD 4528 4538 20/02/18 05:00 S1 صرافی ۱
USD 4584 4594 18/02/18 19:53 S2 صرافی ۲
USD 4584 4594 18/02/18 21:29 S2 صرافی ۲
USD 4584 4594 18/02/18 21:30 S2 صرافی ۲
USD 4584 4594 18/02/18 21:31 S2 صرافی ۲
USD 4584 4594 18/02/18 21:32 S2 صرافی ۲
USD 4584 4594 18/02/18 21:33 S2 صرافی ۲
USD 4584 4594 18/02/18 21:34 S2 صرافی ۲
USD 4584 4594 19/02/18 05:00 S2 صرافی ۲
USD 4584 4594 19/02/18 06:00 S2 صرافی ۲
USD 4584 4594 19/02/18 07:00 S2 صرافی ۲
USD 4578 4588 19/02/18 08:00 S2 صرافی ۲
USD 4553 4563 20/02/18 12:00 S2 صرافی ۲
USD 4553 4563 20/02/18 13:00 S2 صرافی ۲
USD 4553 4563 20/02/18 14:00 S2 صرافی ۲
USD 4553 4563 20/02/18 15:00 S2 صرافی ۲
USD 4606 4616 18/02/18 21:21 S3 صرافی ۳
USD 4606 4616 18/02/18 21:29 S3 صرافی ۳
USD 4606 4616 18/02/18 21:30 S3 صرافی ۳
USD 4606 4616 18/02/18 21:31 S3 صرافی ۳
USD 4606 4616 18/02/18 21:32 S3 صرافی ۳
USD 4606 4616 18/02/18 21:33 S3 صرافی ۳
代码:
library(plyr)
library(shiny)
library(dplyr)
library(plotly)
library(rvest)
library(RMySQL)
library(DBI)
# finding and closing active connections
dbListConnections( dbDriver( drv = "MySQL")) # list active connecitons
# disconnect all function
##SERVER INFO OMMITED
db_kajex <- dbGetQuery(con, "SELECT * FROM kajex;")
db_kajex$Buy<-as.numeric(db_kajex$Buy)/10
db_kajex$Sell<-as.numeric(db_kajex$Sell)/10
db_kajex$exchange_code<-"S1"
db_oxe <- dbGetQuery(con, "SELECT * FROM oxe;")
db_oxe$exchange_code<-"S2"
db_parsi<-dbGetQuery(con, "SELECT * FROM parsi;")
db_parsi$exchange_code<-"S3"
db_data<-c()
db_data<-rbind(db_kajex,db_oxe,db_parsi)
db_data$Buy<-as.numeric(gsub(",", "", db_data$Buy))
db_data$Sell<-as.numeric(gsub(",", "", db_data$Sell))
db_data$saraf<-revalue(db_data$exchange_code,c("S1"="صرافی ۱","S2"="صرافی ۲","S3"="صرافی ۳"))
ui <- fluidPage(
fluidRow(" "),
fluidRow(
column(2,offset=1,radioButtons("buy_sell",em("خرید/ فروش"),
choices = c("خرید"="Buy","فروش"="Sell"), selected="Buy")),
column(2,checkboxGroupInput("exchange",em("منبع"),
choices=c("صرافی ۱"="S1","صرافی ۲"="S2","صرافی ۳"="S3"),
selected="S1")),
column(3, offset=0, selectInput("currency",em("نوع ارز"),
choices = c("USD","EUR","GBP","CAD","AUD"),
selected="USD",
multiple=FALSE,
width=100),
tags$style(type='text/css',
".selectize-input { font-size: 10px; line-height: 10px; height: 8px ;vertical-align: middle; text-align: left} .selectize-dropdown { font-size: 10px; line-height: 10px; }")),
column(4,offset=0, dateRangeInput("DateRange",em("تاریخ-میلادی"),
min=min(as.Date(as.character(db_data$Date))),
max=Sys.Date(),
format = "yyyy/mm/dd",
start=Sys.Date()-1,
end=Sys.Date(),
width=300))
),
hr(),
fluidRow(
column(12,plotlyOutput(outputId = "plot1"))
),fluidRow(tableOutput("text"))
)
server <- function(input, output, session) {
dbDisconnectAll() # disconnect all
db_kajex <- dbGetQuery(con, "SELECT * FROM kajex;")
db_kajex$Buy<-as.numeric(db_kajex$Buy)/10
db_kajex$Sell<-as.numeric(db_kajex$Sell)/10
db_kajex$exchange_code<-"S1"
db_oxe <- dbGetQuery(con, "SELECT * FROM oxe;")
db_oxe$exchange_code<-"S2"
db_parsi<-dbGetQuery(con, "SELECT * FROM parsi;")
db_parsi$exchange_code<-"S3"
db_data<-c()
db_data<-rbind(db_kajex,db_oxe,db_parsi)
db_data$Buy<-as.numeric(gsub(",", "", db_data$Buy))
db_data$Sell<-as.numeric(gsub(",", "", db_data$Sell))
db_data$saraf<-revalue(db_data$exchange_code,c("S1"="صرافی ۱","S2"="صرافی ۲","S3"="صرافی ۳"))
filter_table<-reactive({
db_data%>%
filter(Currency==input$currency,
exchange_code %in% input$exchange,
as.Date(as.character(Date),format="%d/%m/%Y %H:%M:%S")>=input$DateRange[1],
as.Date(as.character(Date),format="%d/%m/%Y %H:%M:%S")<=input$DateRange[2]
)%>%
mutate(Date = format(Date, format = "%d/%m/%Y %H:%M:%S"))%>%
arrange(desc(Date))
})
output$plot1<-renderPlotly({
plotly_chart<-plot_ly(data=filter_table(),x=~Date,y=~get(input$buy_sell),color=~saraf,
type = "scatter", mode="lines")%>%
layout(xaxis=list(title=" ",nticks=4,tickangle = 0,tickformat="%X"),
yaxis=list(title="تومان",size=10,ntick=4
),
margin=list(pad=4, b=50,l=75),
showlegend = TRUE)
plotly_chart
})
}
shinyApp(ui=ui, server=server)