(Acest articol a fost publicat pentru prima dată pe pacha.dev/blogși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
Dacă această postare vă este utilă, vă rog cu drag o donație minimă pe Buy Me a Coffee. Va fi folosit pentru a-mi continua eforturile Open Source.
Puteți să-mi trimiteți întrebări pentru blog folosind acest formular și să vă abonați pentru a primi un e-mail când apare o nouă postare.
Despre
Tabler pentru R este un cadru modern pentru tabloul de bord pentru R Shiny, folosind frumosul tablou de bord Tabler.
Iată o scurtă prezentare video a Tabler pentru R:
Știu că există un pachet TablerDash. Aceasta este o implementare diferită pe care am început-o de la zero pentru a oferi mai multă flexibilitate și opțiuni pentru machete, teme și culori.
În plus, această implementare este FOSS (Software gratuit și cu sursă deschisă) sub licența Apache 2.0, ceea ce înseamnă că o puteți utiliza liber în proiecte guvernamentale sau ONG fără să vă faceți griji cu privire la taxele de licență. Postarea D3po (vezi articolul precedent) este și Apache 2.0 licențiat din același motiv.
Iată câteva capturi de ecran cu diferite aspecte și teme:





Instalare
# using the R-Universe
install.packages("tabler", repos = "https://pachadotdev.r-universe.dev")
# or using the remotes package
remotes::install_github("pachadotdev/tabler")
Pornire rapidă
Vă rugăm să consultați documentația: https://pacha.dev/tabler/
Iată un exemplu complet pe care îl folosesc pentru a testa toate machetele cu tema (luminoasă/întunecată) și opțiunile de culoare: https://github.com/pachadotdev/tabler/blob/main/examples/shiny-test-layouts.R
Iată un exemplu minim folosind aspectul „combo” cu bara laterală și bara de navigare de sus: https://github.com/pachadotdev/tabler/blob/main/examples/shiny-test-combo.R
if (!require("d3po")) {
install.packages("d3po", repos = "https://pachadotdev.r-universe.dev")
}
library(shiny)
# library(tabler)
load_all()
library(d3po)
sidebar_nav <- navbar_menu(
brand = "Combo Layout",
menu_item("Home", icon = "home"),
menu_dropdown(
"Layout",
icon = "layout-2",
href = "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./",
items = list(
c("Boxed", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Combined", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Condensed", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Fluid", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Fluid vertical", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Horizontal", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Navbar dark", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Navbar overlap", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Navbar sticky", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Right vertical", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("RTL mode", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Vertical", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./"),
c("Vertical transparent", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./")
)
)
)
# Simplified menu for the top navbar (just labels, no icons for simplicity)
top_nav <- navbar_menu(
menu_item("Button 1", icon = NULL),
menu_dropdown(
"Button 2",
icon = "layout-2",
href = "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./",
items = list(
c("Button 3", "https://www.r-bloggers.com/2025/10/tabler-0-1-0-is-here/./")
)
)
)
# Combine both for combo layout
main_navbar <- list(side = sidebar_nav, top = top_nav)
ui <- tabler_page(
theme = "light",
color = "teal",
title = "Combo Layout",
layout = "combo",
show_theme_button = FALSE,
navbar = main_navbar,
body = list(
# Page header
page_header(
title_text = "Combo Layout",
pretitle_text = "Overview"
),
# Page body content
shiny::tags$div(
class = "page-body",
shiny::tags$div(
class = "container-xl",
column(
6,
tabler_card(
title = "My title",
footer = "Footer.",
p("My text"),
p("More text", class = "text-muted"),
d3po_output("plot", width = "100%", height = "500px")
)
)
)
)
),
footer = tabler_footer(
left = "Tabler",
right = shiny::tags$span("v1.4.0")
)
)
server <- function(input, output, session) {
output$plot <- render_d3po({
set.seed(123)
sim <- data.frame(
x = rnorm(100),
y = rnorm(100),
letter = sample(letters(1:3), 100, replace = TRUE)
)
# for light theme
axis_color <- "#000"
tooltip_color <- "#fff"
# for dark theme
axis_color <- "#fff"
tooltip_color <- "#000"
d3po(sim) %>%
po_scatter(daes(x = x, y = y, group = letter)) %>%
po_labels(title = "Weight Distribution by Type") %>%
po_background("transparent") %>%
po_theme(axis = axis_color, tooltips = tooltip_color)
})
}
shinyApp(ui, server)
Aspecte disponibile
Toate exemplele folosesc aceeași structură de bază din exemplul de pornire rapidă de mai sus. Iată diferențele cheie pentru fiecare aspect:
- În casetă (implicit): tablou de bord de bază cu bară de navigare superioară și zonă de conținut cu lățime restrânsă. Acesta este aspectul implicit.
- Combo: Combină navigarea pe bara laterală verticală cu antetul superior.
- Condensat: Aspect compact cu umplutură/margini reduse.
- Fluid: Aspect pe toată lățimea fără constrângeri de container.
- Fluid Vertical: Aspect pe toată lățimea cu bară laterală verticală.
- Orizontală: Aspect cu meniu de navigare orizontal.
- Navbar Dark: Aspect cu temă întunecată a barei de navigare.
- Suprapunere bară de navigare: Aspect în care conținutul se suprapune cu bara de navigare pentru un aspect modern.
- Navbar Sticky: Aspect cu bară de navigare lipicioasă/fixă care rămâne în partea de sus când derulați.
- RTL: Aspect de la dreapta la stânga pentru limbile ebraică/arabă.
- Vertical: Aspect bara laterală verticală fără bara de navigare superioară.
- Vertical Dreapta: Bară laterală verticală poziționată pe partea dreaptă.
- Vertical Transparent: Aspect vertical cu bară laterală transparentă.
