首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ShinyR上创建绘图

在ShinyR上创建绘图
EN

Stack Overflow用户
提问于 2019-02-21 12:41:35
回答 1查看 28关注 0票数 0

你好,我正在尝试创建一个闪亮的应用程序,在这个应用程序中,我想在一个图形上显示多少订单(在24小时内交付,如果不是,则以TAT)。

这就是我在server.R中携带的原始数据,在数据传递和操作之后的表。

代码语言:javascript
复制
WareHouse  Order Date   In TAT   Out TAT
W-1        2019-02-14   431      5
W-1        2019-02-15   533      10
W-1        2019-02-16   234      64
W-1        2019-02-17   456      12
W-2        2019-02-14   123      11
W-2        2019-02-15   787      56
W-2        2019-02-16   234      89
W-2        2019-02-17   221      23
W-3        2019-02-14   111      12
W-3        2019-02-15   789      56
W-3        2019-02-16   345      98
W-3        2019-02-17   897      45

现在,我想在我的shinyapp的首页上画一个图表,在那里我可以显示在不同的日期,有多少订单在TAT中,有多少订单来自不同的仓库。

以下是我目前所取得的成就。

UI.R

代码语言:javascript
复制
library(shiny)
library(DT)
library(gtools)



shinyUI(

  fluidPage(
    navbarPage(
       title = 'Dashboard',
      tabPanel('Overview'),
       tabsetPanel(
         tabPanel('In/Out TAT Details',
                 fluidRow(
                    # plotlyOutput("overview"),
                    DT::dataTableOutput("view_fwd"),width = 6
                  ) )
         ),
       tabPanel('B2C Details'  
       ))))

在Server.R中,我正在读取文件并计算订单的TAT &创建上面所示的表a

代码语言:javascript
复制
library(shiny)
library(ggplot2)



shinyServer(
  function(input, output) {

overview <- reactive({  
  library(DT)
  library(RPostgreSQL)
  library(markdown)
  library(dplyr)
  library(reshape2)
  library(ggplot2)
  library(plotly)

  m <- read.csv("/data/xia2.csv", header=TRUE, sep=",")
  x <- m[,c("Order.ID","Warehouse","order.time","deliver.Time")]
  x$deliver.Time <- as.POSIXct(x$deliver.Time , format='%m-%d-%Y %H:%M')

  x$order.time <- (as.POSIXct(x$order.time, format='%m-%d-%Y %H:%M'))


  # as.character
  x$diff <- (difftime(x$deliver.Time,x$order.time,units="days"))
  x$TAT <- ifelse(x$diff > 1, paste("Out TAT"), paste("In TAT"))
  x$date <- as.Date(x$deliver.Time)

  table <- dcast(x, Warehouse + date ~  TAT,value.var = "Order.ID", fun.aggregate = length, margins = TRUE)
  table <- table[which(table$date !="(all)"),]


  })

output$view_fwd <-  DT::renderDataTable(DT::datatable({

  view_fwd <- overview()
},class = 'cell-border stripe',options = list(pageLength = 50),
rownames= FALSE))

  })

到目前为止,我只是显示我在server.R中得到的“表”数据框架,而不是这样,我想要创建一个可能出现的图或图。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-21 12:55:20

当您创建一个闪亮的对象时,您必须将两件事情看作是单独的:ui对象和server对象(事情后来变得更加复杂,但以这种方式开始比较简单)

每当您想要以闪亮的形式显示一个情节时,首先必须使用renderPlotserver部分中使用输出对象(这将创建将被呈现的对象)来创建对象。第二,使用ui部分中的一个ui在闪亮的应用程序中显示对象。

一个简短的例子:

server部分:我选择了任何变量x和y,只是为了给出一个大致的想法。

代码语言:javascript
复制
output$plot <- renderPlot{ggplot(dat,aes(x=x,y=y)) + geom_line()}

ux部分(在要放置情节的部分中):由于个人喜好,我选择了1400x600分辨率。

代码语言:javascript
复制
plotOutput("plot", width = "1400px", height = "600px")

这应该使你想要的情节出现在你选择的地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54807345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档