我使用dygraphs R包中的dygraph函数绘制了一个dygraph.我想知道是否有一种方法可以将图例放在情节旁边,而不是像默认情况下那样完成它...
重现此dygraph的代码如下:
library(archivist)
library(dplyr)
library(devtools)
devtools::install_github("rstudio/dygraphs")
library(dygraphs)
seriesReactive <- loadFromGithubRepo( "db914a43536d4d3f00cf3df8bf236b4a", user= "MarcinKosinski", repo="Museum", value = TRUE)
dygraph(seriesReactive, main = "Dzienna proporcja klikni?? do ods?on dla danych struktur", ylab = "Proporcja") %>%
dyRangeSelector()
Run Code Online (Sandbox Code Playgroud)

fai*_*ard 12
是的,请阅读?dygraphs::dyLegend.labelsDiv论证的描述说:
在外部div中显示数据标签,而不是在图表上显示.该值应为div元素id.
当然,这很容易在闪亮的环境中进行,但不是在rstudio中.
例如,在Shiny ui.R文件中,我添加了这一行:
box(title = "Legend", textOutput("legendDivID"))
Run Code Online (Sandbox Code Playgroud)
这会创建一个<div>带有ID 的HTML 标记legendDivID.然后,在Shiny server.R文件中,我在dygraphs params中使用相同的ID :
dygraph(...) %>% dyLegend(labelsDiv = "legendDivID")
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力.
在您的情况下,结果如下:

和代码(只需app.R在RStudio中创建脚本并通过调用运行它shiny::runApp()):
## app.R ##
library(shinydashboard)
library(shiny)
library(dygraphs)
ui <- dashboardPage(
dashboardHeader(title = "Page title"),
dashboardSidebar(sidebarMenu(menuItem("tab title", tabName = "tab", icon = icon("globe")))),
dashboardBody(
tabItems(
tabItem(tabName = "tab",
fluidRow(
box(dygraphOutput("graph"), width=9),
box(textOutput("legendDivID"), title = "Legend", collapsible = TRUE, width=3)
)
)
)
)
)
server <- function(input, output) {
library(archivist)
library(dplyr)
seriesReactive <- loadFromGithubRepo( "db914a43536d4d3f00cf3df8bf236b4a", user= "MarcinKosinski", repo="Museum", value = TRUE)
output$graph <- renderDygraph({
withProgress(message = "Loading...", {
dygraph(seriesReactive, main = "Dzienna proporcja klikni?? do ods?on dla danych struktur", ylab = "Proporcja") %>%
dyRangeSelector() %>%
dyLegend(labelsDiv = "legendDivID")
})
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4038 次 |
| 最近记录: |