我为你写了一个非常简单的函数colorBox。 color 是图例颜色,text 是图例文本。
library(shiny)
colorBox <- function(color, text=""){
div(
tags$span(text, style = "padding-left: 30px;"),
div(
style = paste0("background-color:",
color, "; ",
"display: inline-block;
position: absolute;
height:13px;
width: 13px;
left: 5px;
top: 3px;")),
style = "position: relative;"
)
}
ui <- fluidPage(
h1("Legend"),
fluidRow(
colorBox("red", "red"),
colorBox("yellow", "yellow"),
colorBox("green", "green"),
),
fluidRow(
style = "width: 300px;",
column(4, colorBox("red", "red")),
column(4, colorBox("yellow", "yellow")),
column(4, colorBox("green", "green")),
)
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
两种布局:
- 第一个是垂直的;
- 第二个在宽屏上是水平的,在窄屏上是垂直的:当您将窗口宽度缩小到窄视图时,图例将变为垂直。尝试使用您的浏览器宽度,您会看到差异。