【问题标题】:Shiny/R: Formatting graph date from character dateShiny/R:从字符日期格式化图形日期
【发布时间】:2017-09-11 19:00:25
【问题描述】:

我已经为此花费了几个小时,而且我是一个新用户。我去过很多网站并尝试过不同的东西。我似乎无法让图表在 x 轴上以 YYYY-MM 格式显示日期。日期开始是字符,这似乎适用于日期范围输入。但是图表日期要么显示为长数字,要么显示为 Mar-01、Apr-01 等。我宁愿看到 2017-Feb、2017-Mar、2017-Apr、2017-May。如果他们不能像这样正确排序,我将需要 2017-02、2017-03 等(甚至 201702 - 只是一些年份然后月份格式)。我的应用程序有几个动态 UI,它们正在运行。我展示的是一个简单的版本,但我留下了日期范围选择以防万一。

   library(shiny)
library(tidyverse)
library(DT)
library(lubridate)

data_source_end = c("2/28/2017","3/31/2017", "4/30/2017", "5/31/2017")

mean_score = c(1.5, 2.5 , 3.5, -.5)

df <- data.frame(data_source_end, mean_score)
df$data_source_char <- as.character(df$data_source_end)
df$data_source_mdy <- as.Date(mdy(df$data_source_char),"%Y-%m-%d")

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      dateRangeInput("dates","DateRange",
                               start = min(df$data_source_char),
                               end = max(df$data_source_char))
      ),

    mainPanel( 
      plotOutput("plot2")
  )
  )
)

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

  output$DateRange <- renderText({
    #i have  validate messages here 
  })

  fildata <- reactive({
    fildata  <-  df
    filtered2 <- fildata %>%
      select(data_source_mdy, mean_score ) %>%
      dplyr::arrange(data_source_mdy)
    return(filtered2)
  })
  output$plot2 <- renderPlot({
    x <-fildata()$data_source_mdy
    y <-  fildata()$mean_score 
    plot(x, y, xlim=c(input$dates[1],input$dates[2] )
    )
  })

}


# Run the application 
shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: r date graph shiny


    【解决方案1】:

    您可以使用axis.Date(side = 1, at = x, format = "%Y-%m") 获取格式参数%Y-%m 指定YYYY-MM 格式的日期格式。

    您的output$plot2 看起来像这样:

    output$plot2 <- renderPlot({
          x <-fildata()$data_source_mdy
          y <-  fildata()$mean_score 
          plot(x, y, xlim=c(input$dates[1],input$dates[2]), xaxt = "n")
          axis.Date(side = 1, at = x, format = "%Y-%m")
        }) 
    

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2018-07-31
      相关资源
      最近更新 更多