R - dygraphs与DT和闪亮

时间:2017-03-05 16:18:35

标签: r shiny dygraphs dt

这是我的第一个问题。 Here is the graph. Why my graph does not show numbers on each lines and how can I change left side axis to display numbers rather than exponential sign

此外,我还有一些关于 DT dygraphs 闪亮的问题。
 1.我已经在R中读取了我的csv数据,只需将 dygraphs 作为附加图像运行。但是,如果我希望我的图像在我的鼠标停留在线上时有一些数字,我该怎么办? 已解决
 2.此外,我想更改y轴以显示数字而不是指数符号。 已解决
 3.我有一个关于使用闪亮来显示我的Excel数据的想法。因此,我使用带有数据表功能的 DT 包。此外,如何在闪亮中结合 DT dygraphs 。我的意思是当我单击数据表并选择一些行或列时,将显示动态折线图。也许有其他有用和方便的包?
4.我在哪里可以学习一些关于闪亮结合 DT 的参考资料。

以下是我的test.csv数据输入到R。

   year month company      wp wn       ep en       pa pan npa npan
1  2015     1      Ch 6497985  1  1471586  2  4833118   3   0    0
2  2015     1      SK     350  1        0  0        0   0   0    0
3  2015     2      Ca       0  0   159703  2    36131   5   0    0
4  2015     2      Ch   88289  1 11227345  3  4305786   2   0    0
5  2015     2      Fu       0  0   794601  1        0   0   0    0
6  2015     2      Zu       0  0    70818  1   218310   9   0    0
7  2015     3      Ca       0  0    93577  1     9586   3   0    0
8  2015     3      Ch       0  0 11114302  3  1149480   4   0    0
9  2015     3      Fu       0  0   847562  1        0   0   0    0
10 2015     3      Zu       0  0   229086  2        0   1   0    0
11 2015     4      Ca       0  0    59999  1     9375   3   0    0
12 2015     4      Ch       0  0  9927702  3 16706470   8   0    0
13 2015     4      Fu       0  0  1000049  1    84655   2   0    0
14 2015     4      Zu       0  0   173894  1    74300   2   0    0

另外,这是原始数据

year,month,company,wp,wn,ep,en,pa,pan,npa,npan
2015,1,Ch,6497985,1,1471586,2,4833118,3,0,0
2015,1,SK,350,1,0,0,0,0,0,0
2015,2,Ca,0,0,159703,2,36131,5,0,0
2015,2,Ch,88289,1,11227345,3,4305786,2,0,0
2015,2,Fu,0,0,794601,1,0,0,0,0
2015,2,Zu,0,0,70818,1,218310,9,0,0
2015,3,Ca,0,0,93577,1,9586,3,0,0
2015,3,Ch,0,0,11114302,3,1149480,4,0,0
2015,3,Fu,0,0,847562,1,0,0,0,0
2015,3,Zu,0,0,229086,2,0,1,0,0
2015,4,Ca,0,0,59999,1,9375,3,0,0
2015,4,Ch,0,0,9927702,3,16706470,8,0,0
2015,4,Fu,0,0,1000049,1,84655,2,0,0
2015,4,Zu,0,0,173894,1,74300,2,0,0

我想显示由年和月(xaxis)订购的(test $ ep)图,该图包含所有公司。 已解决 其他用户可能会在将来遇到类似的问题。我在下面发帖。

  

测试$ year< - as.Date(test $ year)
    time_series< - xts(test $ ep,order.by = test $ year)
    dygraph(time_series,group = test $ company)

然而,剧情没有显示任何内容。

我的解决方法:

  

测试$ year< - as.yearmon(测试$ year,“%m%Y)
    testre< - dcast(test,year~company,value.var =“ep”)
    testre [is.na(testre)]< - 0
    test_xts< - xts(testre [, - 1],order.by = testre $ year)
    dygraph(test_xts)

非常感谢。
感谢这个平台,所以我可以提出问题并从其他类型的用户那里学到很多东西。

1 个答案:

答案 0 :(得分:0)

这可以帮助您入手。假设test是您的数据框,您应该首先(当您这样做时)从long转换为wide。一旦您的闪亮应用程序正在运行,请在DT表中选择多行。

library(dygraphs)
library(xts)
library(reshape2)
library(dplyr)
library(zoo)
library(shiny)

ui = fluidPage(

      DT::dataTableOutput("x6"),
  tags$br(),
  tags$br(),
      dygraphOutput("dygraph")
  )


server = function(input, output) {

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

    test   

  }))


  output$dygraph <- renderDygraph({
    test_select <- test %>% select(year, month, company, ep)
    test_select <- test_select[c(input$x6_rows_selected), ]

    test_select_wide <- dcast(test_select, year + month ~ company, value.var="ep")

    test_select_wide$Date <- as.yearmon(paste(test_select_wide$year, test_select_wide$month, sep = "-"))
    test_select_wide$Date <- as.Date(test_select_wide$Date)

    test_select_wide$year <- NULL
    test_select_wide$month <- NULL
    #test_select_wide <- test_select_wide[,c(6,1,2,3,4,5)]

    test_select_wide_xts <- xts(test_select_wide[,-ncol(test_select_wide)], order.by=test_select_wide[,ncol(test_select_wide)])

    dygraph(test_select_wide_xts)
  })


}

shinyApp(ui=ui, server=server)