dyLegend 在 shiny-app 中左对齐
dyLegend align left within a shiny-app
我想将 dygraph
的图例放在绘图左侧的 shiny
应用程序中(在 dygraph
中)。我的问题是我无法设置 dygraph
的绝对宽度,因为该应用程序在具有不同分辨率的不同屏幕上运行。
代码可能是这样的:
ui.r:
library(dygraphs)
shinyUI(fluidPage(
titlePanel("Simple example"),
sidebarLayout(
sidebarPanel(),
mainPanel(
dygraphOutput("dygraph")
)
)
))
server.r
library(dygraphs)
shinyServer(function(input, output, session) {
output$dygraph <- renderDygraph({
dygraph(discoveries)
})
})
有没有办法得到 dygraph
的 width
?或者可能是将图例与左侧对齐的更简单的解决方案?
一种方法是使用 column
并选择 1 到 12 之间的宽度。这是 ui.R 代码,其中 2 用于图例,10 用于 dygraph。
library(dygraphs)
shinyUI(fluidPage(
titlePanel("Simple example"),
sidebarLayout(
sidebarPanel(),
mainPanel(
column(2,
h3("My Legend")
),
column(10,
dygraphOutput("dygraph")
)
)
)
))
如果要将图例对齐到左上角,则可以使用以下 CSS:
.dygraph-legend {
left: 70px !important;
background-color: transparent !important;
}
您也可以使用 tableHTML::make_css
:
轻松地将其添加到您的代码中
library(shiny)
library(tableHTML)
library(dygraphs)
ui <- shinyUI(fluidPage(
tags$style(make_css(list('.dygraph-legend',
c('left', 'background-color'),
c('70px !important', 'transparent !important')))),
titlePanel("Simple example"),
sidebarLayout(
sidebarPanel(),
mainPanel(
dygraphOutput("dygraph", width = '80%')
)
)
))
server <- shinyServer(function(input, output, session) {
output$dygraph <- renderDygraph({
lungDeaths <- cbind(mdeaths, fdeaths)
dygraph(lungDeaths)
})
})
shinyApp(ui = ui, server = server)
如果你想改变 dygraph 容器的宽度,你可以使用 dygraphOutput
中的参数 width
我想将 dygraph
的图例放在绘图左侧的 shiny
应用程序中(在 dygraph
中)。我的问题是我无法设置 dygraph
的绝对宽度,因为该应用程序在具有不同分辨率的不同屏幕上运行。
代码可能是这样的:
ui.r:
library(dygraphs)
shinyUI(fluidPage(
titlePanel("Simple example"),
sidebarLayout(
sidebarPanel(),
mainPanel(
dygraphOutput("dygraph")
)
)
))
server.r
library(dygraphs)
shinyServer(function(input, output, session) {
output$dygraph <- renderDygraph({
dygraph(discoveries)
})
})
有没有办法得到 dygraph
的 width
?或者可能是将图例与左侧对齐的更简单的解决方案?
一种方法是使用 column
并选择 1 到 12 之间的宽度。这是 ui.R 代码,其中 2 用于图例,10 用于 dygraph。
library(dygraphs)
shinyUI(fluidPage(
titlePanel("Simple example"),
sidebarLayout(
sidebarPanel(),
mainPanel(
column(2,
h3("My Legend")
),
column(10,
dygraphOutput("dygraph")
)
)
)
))
如果要将图例对齐到左上角,则可以使用以下 CSS:
.dygraph-legend {
left: 70px !important;
background-color: transparent !important;
}
您也可以使用 tableHTML::make_css
:
library(shiny)
library(tableHTML)
library(dygraphs)
ui <- shinyUI(fluidPage(
tags$style(make_css(list('.dygraph-legend',
c('left', 'background-color'),
c('70px !important', 'transparent !important')))),
titlePanel("Simple example"),
sidebarLayout(
sidebarPanel(),
mainPanel(
dygraphOutput("dygraph", width = '80%')
)
)
))
server <- shinyServer(function(input, output, session) {
output$dygraph <- renderDygraph({
lungDeaths <- cbind(mdeaths, fdeaths)
dygraph(lungDeaths)
})
})
shinyApp(ui = ui, server = server)
如果你想改变 dygraph 容器的宽度,你可以使用 dygraphOutput