2017-04-27 95 views

回答

3

這可能是有趣的你:https://www.r-bloggers.com/announcing-shinytester-a-package-that-helps-you-build-shiny-apps/

它引入了一個與該功能 ShinyHierarchy()稱爲shinyTester庫。 有關該文章的示例,請參閱下圖。 enter image description here

+0

我喜歡那個包,不知道它。將在這些日子中的一件大事上嘗試一下。 –

+0

如果您有很多節點並且想要仔細分析並靜態分析,這可能會更好。我在下面發佈的內置可視化工具非常具有啓發性,因爲您可以瞭解依賴關係是如何動態構建和跟蹤的 - 這是靜態工具無法真正捕獲的。但是它也很容易混淆。 –

+1

你是對的Mike,他們可能應該同時使用。我不知道「反應日誌可視化器」。關於閃亮應用程序的「大小」,如果您可以(添加)「ShinyHierachy()」中的功能,使您可以過濾部分閃亮的應用程序,以便控制圖表的大小,這可能會很有趣。 – BigDataScientist

3

有一個閃亮的「反應日誌可視化」內置閃亮。它逐漸建立一個圖表,顯示各個反應節點如何相互依賴。運行後,其輸出是這樣的:在使用此工具

enter image description here

說明可以在這裏找到:Reactive Log Visualizer

這是我對這個工具的注意事項:

  • 已啓用在shinyApp調用之前插入options(shiny.reactlog = TRUE)
  • 它會記錄節點如何激活對方的日誌。
  • 日誌觀察器然後可以用Ctrl-F3(或Command-F3蘋果)
  • 啓用有可手動覆蓋的節點座標製圖。當顯示大量節點以防止線路相互交叉時,這可能是具有挑戰性的。
  • 然後,您可以使用箭頭鍵在日誌中移回(基本上您正在日誌中移動)。
  • 這裏解釋了被動符號:Shiny Reactivity Overview
  • 它暴露了很多對用戶不可見的反應活動,因此可能會引起混淆。
  • 它不適用於大型Shiny應用程序 - 此工具的許多方面根本無法擴展。
+1

這個答案也是非常有用的,thx。由於上面提到的警告,看來shinyTester會錯過一些事件。反應日誌可視化工具記錄一切,幾乎太多:) –

+0

謝謝。當我解決它時,會做靜態與動態閃亮節點分析器的優缺點列表。 –

+1

感謝您的概述!一個小的評論,對於「閃亮的反應性概述」,我想這個鏈接是不存在的。 – BigDataScientist

2

反應式日誌可視化器是一個功能強大的工具,但不幸的是,無法像@Mike Wise指出的那樣在較大的應用程序中進行擴展。前一段時間,我閱讀了一些有趣的想法來改進rstudio/shiny#1846rstudio/shiny#1532的調試體驗,並開始探索實現它們的方法。

經過磕磕絆絆(summary)後,我發現最好的方法是解析原始的反應日誌並從中構建一個依賴關係圖。

包裝在https://github.com/glin/reactlog。這兩個主要特點是:

顯示觸發失效

observe({ 
    reactlog::traceInvalidation() 
    rx() 
}) 
4: observe({ 
     reactlog::traceInvalidation() 
     rx() 
    }) 
3: rx [<text>#7] 
2: val => num 10 
1: observe(val(10)) 

,並在樹視圖

observe({ 
    reactlog::listDependencies() 
    rxA() + rxB() + rxAB() 
}, label = "obs") 
obs* 
+-- rxA* 
| `-- valA* 
+-- rxB 
| `-- valB 
`-- rxAB* 
    +-- valA* 
    `-- valB 
上市活性依賴調用堆棧

樹視圖可能對查看多個依賴關係是否失效特別有用(星號表示失效或更改)。

+0

輝煌。工作很好。 –