在闪亮的应用程序中为 rbokeh 图设置 xlim
Setting xlim for rbokeh plot inside shiny application
我正在使用 rbokeh package for R. I've been having some good results integrating into a shiny app. I want to now integrate a feature where a dateRangeInput 现在 select 图表的日期范围(它是时间序列数据)。
##necessary packages
install.packages("shiny")
install.packages("devtools")
install.packages("dplyr")
library(devtools)
devtools::install_github("ramnathv/htmlwidgets")
devtools::install_github("bokeh/rbokeh")
library(rbokeh)
library(dplyr)
library(shiny)
#example data set
james<-mtcars[c("mpg")]
james$date<-seq(from=as.Date("2013-05-16"),to=as.Date("2013-06-16"),by="days")
james$index<-1:4
#shiny app
shiny_example <- function(chart_data = james){
date_minmax <- range(chart_data$date)
shinyApp(
ui=fluidPage(
titlePanel("a plot"),
sidebarLayout(
sidebarPanel(
textInput("index","Enter the index from 1 to 16",value=1),
uiOutput("date_range")
),
mainPanel(
rbokeh::rbokehOutput("plot_cars")
)
)
),
server=function(input,output,session)
{
current_data <- reactive({
current_df <- subset(james,index==input$index)
return(current_df)
})
output$date_range <- renderUI({
plot_data <- current_data()
current_id_range <- range(plot_data$date)
return(
dateRangeInput("date_range",
"Date Range(X Axis",
min=date_minmax[1],
max=date_minmax[2],
start=current_id_range[1],
end=current_id_range[2])
)
})
output$plot_cars <- rbokeh::renderRbokeh({
plot_data <- current_data()
g<-rbokeh::figure(title="Cars",
width=800,
heigh=400,
xlab="Date",
ylab="mpg",
xlim=input$date_range) %>%
rbokeh::ly_points(date,
mpg,
data=plot_data) %>%
rbokeh::ly_lines(date,
mpg,
data=plot_data,
alpha=0.3)
return(g)
})
}
)
}
##run the app
shiny_example()
以上是示例数据,但它在 rbokeh::figure 中没有 xlim 参数的情况下也能工作,因为在输入子集中输入 1 到 4 的数字会相应地对数据进行相应地生成图。 xlim 参数似乎在情节中产生了错误。谁能指出我解决 xlim 问题的正确方向?
如果您需要更多详细信息,请告诉我。
这似乎是 rbokeh 中的日期格式问题:https://github.com/bokeh/rbokeh/issues/100 应尽快修复。
我正在使用 rbokeh package for R. I've been having some good results integrating into a shiny app. I want to now integrate a feature where a dateRangeInput 现在 select 图表的日期范围(它是时间序列数据)。
##necessary packages
install.packages("shiny")
install.packages("devtools")
install.packages("dplyr")
library(devtools)
devtools::install_github("ramnathv/htmlwidgets")
devtools::install_github("bokeh/rbokeh")
library(rbokeh)
library(dplyr)
library(shiny)
#example data set
james<-mtcars[c("mpg")]
james$date<-seq(from=as.Date("2013-05-16"),to=as.Date("2013-06-16"),by="days")
james$index<-1:4
#shiny app
shiny_example <- function(chart_data = james){
date_minmax <- range(chart_data$date)
shinyApp(
ui=fluidPage(
titlePanel("a plot"),
sidebarLayout(
sidebarPanel(
textInput("index","Enter the index from 1 to 16",value=1),
uiOutput("date_range")
),
mainPanel(
rbokeh::rbokehOutput("plot_cars")
)
)
),
server=function(input,output,session)
{
current_data <- reactive({
current_df <- subset(james,index==input$index)
return(current_df)
})
output$date_range <- renderUI({
plot_data <- current_data()
current_id_range <- range(plot_data$date)
return(
dateRangeInput("date_range",
"Date Range(X Axis",
min=date_minmax[1],
max=date_minmax[2],
start=current_id_range[1],
end=current_id_range[2])
)
})
output$plot_cars <- rbokeh::renderRbokeh({
plot_data <- current_data()
g<-rbokeh::figure(title="Cars",
width=800,
heigh=400,
xlab="Date",
ylab="mpg",
xlim=input$date_range) %>%
rbokeh::ly_points(date,
mpg,
data=plot_data) %>%
rbokeh::ly_lines(date,
mpg,
data=plot_data,
alpha=0.3)
return(g)
})
}
)
}
##run the app
shiny_example()
以上是示例数据,但它在 rbokeh::figure 中没有 xlim 参数的情况下也能工作,因为在输入子集中输入 1 到 4 的数字会相应地对数据进行相应地生成图。 xlim 参数似乎在情节中产生了错误。谁能指出我解决 xlim 问题的正确方向?
如果您需要更多详细信息,请告诉我。
这似乎是 rbokeh 中的日期格式问题:https://github.com/bokeh/rbokeh/issues/100 应尽快修复。