gpt4 book ai didi

r - 如何为日期滑动输入

转载 作者:行者123 更新时间:2023-12-03 13:33:48 26 4
gpt4 key购买 nike

这让我很痛苦。

我想 simlpy 有一个 slider 输入,它需要一个日期(最好按月步进)并因此更改一个简单的 ggplot_bar 。尽管我可以显示所有内容,但似乎对 slider 的更改没有响应:

这是我的代码:

用户界面

library(shiny)

# Define UI for application that draws a histogram
shinyUI(fluidPage(

# Application title
titlePanel("St Thomas' Physiology Data Console"),

# Sidebar with a slider input for the number of bins
sidebarLayout(
sidebarPanel(
sliderInput("DatesMerge",
"Dates:",
min = as.Date("2006-01-01","%Y-%m-%d"),
max = as.Date("2016-12-01","%Y-%m-%d"),
value=as.Date("2016-12-01"),timeFormat="%Y-%m-%d")
),

# Show a plot of the generated distribution

mainPanel(
tabsetPanel(
tabPanel("Breath Tests",plotOutput("distPlotLactul")),
)
)
))

服务器.r
library(shiny)

source("S:\\Usage.R")

# Define server logic required to draw a histogram
shinyServer(function(input, output) {

output$distPlotLactul <- renderPlot({
#Create the data
DatesMerge<-input$DatesMerge

# draw the histogram with the specified number of bins

ggplot(TotsLactul)+
geom_bar(aes(DatesMerge,fill=year))+
labs(title=paste("Num")) +
xlab("Time") +
ylab("NumP") +
theme(axis.text.x=element_text(angle=-90)) +
theme(legend.position="top")+
theme(axis.text=element_text(size=6))


})


})

最佳答案

我不完全确定你的 ggplot 代码,所以我不得不重新调整为我理解的东西。

我还创建了自己的数据以使其具有可重复性。

这是我制作的数据

# Generate random variates
TotsLactul <- rep(ymd("2016-01-01"),10000)
randomMonths <- round(runif(n = 10000,min = 0,max = 11),0)
randomDays <- round(runif(n = 10000,min = 0,max = 28),0)

# Increments days
month(TotsLactul) <- month(TotsLactul) + randomMonths
day(TotsLactul) <- day(TotsLactul) + randomDays

# Make it a DT
TotsLactul <- data.table(x=TotsLactul)

这只是全年的随机日期。

用户界面
ui <- shinyUI(fluidPage(

# Application title
titlePanel("St Thomas' Physiology Data Console"),

# Sidebar with a slider input for the number of bins
sidebarLayout(
sidebarPanel(
sliderInput("DatesMerge",
"Dates:",
min = as.Date("2016-01-01","%Y-%m-%d"),
max = as.Date("2016-12-01","%Y-%m-%d"),
value=as.Date("2016-12-01"),
timeFormat="%Y-%m-%d")
),
mainPanel(
plotOutput("distPlotLactul"))

)
))

我将 slider 修改为仅采用 2016 值,以匹配我生成的数据

服务器
server <- shinyServer(function(input, output) {

output$distPlotLactul <- renderPlot({
#Create the data
DatesMerge<-input$DatesMerge

# draw the histogram with the specified number of bins
ggplot(TotsLactul[month(x) == month(DatesMerge)],mapping=aes(x=x))+
geom_histogram(bins=100)+
labs(title=paste("Num")) +
xlab("Time") +
ylab("NumP") +
theme(axis.text.x=element_text(angle=-90)) +
theme(legend.position="top")+
theme(axis.text=element_text(size=6))


})


})

老实说,我从来没有像你那样使用过 ggplot (只是放在 geom 中的表格中等),所以我无法评论其中任何一个是否正确/错误。希望你能跟随我的变化。
  • 将 geom_bar 更改为 geom_hist(以匹配我的数据)
  • 过滤发生在绘图中包含的数据中,而不是在几何图形中。

  • 这似乎工作正常,让我知道你的进展如何。

    关于r - 如何为日期滑动输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40908808/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com