我正在尝试制作一个闪亮的应用程序来加载来自不同API的一些数据,直接进行一些分析,比如图... 我搜索了闪亮的网站,我找不到办法。我的数据不想加载到图表上,我认为这是因为我直接在服务器页面上加载数据,因为我只想加载想要的数据......数据来自欧洲中央银行的ecb包,其中加载来自其API的数据。这是我的代码:
UI
library(shiny)
#library(quantmod)
library(lubridate)
library(plotly)
library(ggplot2)
ti<-c("PIB","MM_M3","Taux_d_Inflation")
data<-data.frame("ICP.M.U2.N.000000.4.ANR","BSI.M.U2.Y.V.M30.X.I.U2.2300.Z01.A","MNA.Q.Y.I8.W2.S1.S1.B.B1GQ._Z._Z._Z.EUR.LR.GY")
colnames(data)<-ti
# Define UI for application that draws a histogram
shinyUI(fluidPage(
# Application title
titlePanel("Evolution Economique"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
h1("Indicateur Europe"),
selectInput("chiffre","Indicateur:",
choice=ti),
#downloadButton("downloadData", "Download"),
actionButton("go","Load"),
hr(),
helpText("Donnees Banque Centrale Europeenne")
),
# Show a plot of the generated distribution
mainPanel(
plotlyOutput("graph")
)
)
))
服务器
library(shiny)
library(lubridate)
library(plotly)
library(ggplot2)
library(ecb)
# Define server logic required to draw a histogram
shinyServer(function(input, output) {
observeEvent(input[["go"]],handlerExpr = {
compa<-input$chiffre
compa<-as.character(compa)
temp<-data[[compa]]
temp<-as.character(temp)
temp<-data.frame(Date=ymd(as.character(get_data(temp)$obstime),"%Y-%m"),Valeur=get_data(temp)$obsvalue)
temp<-get_data(temp)
temp<-data.frame(Date=temp$obstime,Valeur=temp$obsvalue)
temp
})
output$graph <- renderPlotly({
plot_ly(temp,x=~Date,
y=~Valeur,type="scatter",mode="lines")
#layout(title="Quaterly evolution")
})
})
答案 0 :(得分:1)
您的图表无法识别temp
在observeEvent
内本地启动的对象,请尝试使用eventReactive
:
# Define server logic required to draw a histogram
shinyServer(function(input, output) {
temp <- eventReactive(input$go,{
req(input$chiffre)
compa<-input$chiffre
compa<-as.character(compa)
temp<-data[[compa]]
temp<-as.character(temp)
temp<-data.frame(Date=ymd(as.character(get_data(temp)$obstime),"%Y-%m"),Valeur=get_data(temp)$obsvalue)
temp<-get_data(temp)
temp<-data.frame(Date=temp$obstime,Valeur=temp$obsvalue)
temp
})
output$graph <- renderPlotly({
plot_ly(temp(),x=~Date,y=~Valeur,type="scatter",mode="lines")
#layout(title="Quaterly evolution")
})
})