Acesta este cel de -al doilea blog dintr -o serie despre pachetul {Sparkline} R pentru vizualizările de date inline. Puteți citi primul aici. În această postare voi demonstra cum puteți include Sparklines în tabelele HTML.
Reactabil
{Reactable} este un pachet R pentru producerea tabelelor HTML, utilizate în mod obișnuit în strălucire.
Pentru a crea un tabel reactabil HTML Tot ce trebuie să facem este să introduceți un obiect de date.frame la reactable
funcţie. Aceste tabele au un aspect simplu implicit simplu, dar putem adăuga și propriile stiluri foarte ușor. În primul nostru exemplu de tabel, folosesc doar în r construit R construit iris
set de date.
library(reactable) reactable(iris)
Câteva lucruri care pot fi adăugate cu ușurință la tabelele reactabile sunt filtre, coloane sortabile, coloane căutabile, dimensiune implicită a paginii, borduri și ambalare cu dungi și text. Alături de aceste argumente, putem implementa desigur propriul stil cu CSS.
reactable( iris, striped = TRUE, searchable = TRUE, filterable = TRUE, bordered = TRUE, defaultPageSize = 8 )
SPILIELE ÎN TABLIE REACTABILE
Graficele de cutie, linie și bare
Când vine vorba de încorporarea scânteilor în tabele reactabile, trebuie să adăugăm o nouă coloană la tabelul nostru, pe care apoi îl vom suprascrie în columns
argument despre reactable
.
În primul exemplu, folosesc un set de date batjocoritor cu 3 observații „X”, „Y” și „Z”, fiecare este doar o listă care conține 10 valori generate de
rnorm
. Atunci folosesc dplyr’s mutate
Funcție pentru a adăuga o coloană plină de valori NA.
Acum, pe partea reactabilă, folosesc din nou reactable
funcție, unde folosesc columns
Argument care ia o „listă numită de definiții ale coloanelor”. Pentru fiecare linie de scânteie diferită, va trebui să folosesc colDef
Pentru a adăuga o funcție care ia un argument de valoare și index. Folosesc apoi funcția Sparkline și trec data$values((index))
împreună cu type
Pentru a stabili ce grafic mi -aș dori. Puteți seta preferințe de coloană în
colDef
L -am folosit aici pentru a ascunde values
coloană.
library(sparkline) library(dplyr) data = tibble( names = c("x", "y", "z"), values = c(list(rnorm(10)), list(rnorm(10)), list(rnorm(10))) ) |> mutate(box = NA, line = NA, bar = NA) table = reactable(data, columns = list( values = colDef(show = FALSE), box = colDef(cell = function(value, index) { sparkline(data$values((index)), type = "box") }), line = colDef(cell = function(value, index) { sparkline(data$values((index)), type = "line") }), bar = colDef(cell = function(value, index) { sparkline(data$values((index)), type = "bar") }) ) )
Grafic de gloanțe
În exemplul nostru final, folosesc din nou iris
Date, dar de data aceasta creez un rezumat pentru fiecare specie care conține media și inter-quartile (IQR) a coloanei sepale.length. Aceste valori vor fi utilizate pentru a crea un grafic de glonț. Într-un grafic cu glonț, este prezentată o valoare observată („performanța”) cu o valoare țintă și o ilustrare a datelor de dispreț (aici IQR) este prezentată. Într -un anumit rând al cifrei, valoarea sepalului. Lățimea pentru un iris specific va fi prezentată ca performanță; Ținta cu care este comparată acest lucru este media pentru speciile relevante, IQR mai mic va fi intervalul1 și IQR mai mare va fi Range2.
Apoi, atunci când creăm tabelul nostru reactabil, este ușor diferit de exemplul nostru anterior (unde trec doar o listă de valori către funcția Sparkline), pentru un grafic de glonț, va trebui să trec într -un vector în formă c(target, performance, range1, range2)
. Pot accesa apoi valorile prin intermediul d$
(sau o altă formă de extracție) și specificați cu ce rând am nevoie ((index))
.
d = iris |> group_by(.data$Species) |> mutate(mean = mean(.data$Sepal.Length), lower_range = range(.data$Sepal.Length)(1), upper_range = range(.data$Sepal.Length)(2), bullet = NA) iris_table = reactable(d, defaultColDef = colDef(show = FALSE), columns = list( Species = colDef(show = TRUE), Sepal.Length = colDef(show = TRUE), bullet = colDef(cell = function(value, index) { sparkline(c(d$mean((index)), d$Sepal.Length((index)), d$upper_range((index)), d$lower_range((index))), type = "bullet") }, show = TRUE) ))
În acest blog am implementat graficele de bare, bare, linie și glonț în tabele reactabile. Alte opțiuni pot fi găsite pe site -ul JQuery Sparklines sau pe blogul anterior. Rămâneți la curent cu următorul blog din această serie despre utilizarea tabelelor Reactable Sparkline în aplicații strălucitoare.
Pentru actualizări și revizii la acest articol, consultați postarea originală