Come creare mouseover text
per i nomi delle colonne nella visualizzazione della tabella dei dati lucidi R. Sto provando a fornire del testo agli utenti per capire i nomi delle colonne. Ho controllato anche il pacchetto DT e non sono riuscito a trovare una soluzione. Posso creare etichette per i nomi di colonne e visualizzarle tutte quando un utente controlla una casella, questo richiede molto spazio e non lo voglio. Qualche consiglio?R testo lucido del mouseover per le colonne della tabella
risposta
di espandere il mio commento di cui sopra, ecco un esempio che mostra quello che volevo dire utilizzando le title
attributi:
library(DT)
sketch = htmltools::withTags(table(
class = 'display',
thead(
tr(
th('', title = 'Row Names'),
th('Sepal.Length', title = 'The Sepal Length'),
th('Sepal.Width', title = 'The Sepal Width'),
th('Petal.Length', title = 'The Petal Length'),
th('Petal.Width', title = 'The Petal Width'),
th('Species', title = 'Iris Species')
)
)
))
datatable(iris, container = sketch)
E qui è un altro approccio con JavaScript (jQuery) per aggiungere gli attributi title
:
library(DT)
datatable(iris, callback = JS("
var tips = ['Row Names', 'The Sepal Length', 'The Sepal Width',
'The Petal Length', 'The Petal Width'],
header = table.columns().header();
for (var i = 0; i < tips.length; i++) {
$(header[i]).attr('title', tips[i]);
}
"))
Grazie per l'approccio alternativo – Sri
Grazie a @Yihui. .. quale sarebbe l'approccio corrispondente per includere un mouseover a tutte le celle della tabella, e non l'intestazione? Ho già provato un sacco ma finora non ho gestito ... grazie – ChriiSchee
La versione jquery non sembra funzionare per me - la mia tabella non si è caricata affatto quando ho cercato di includere questo frammento di codice, quindi sono passato all'approccio contenitore, che ha funzionato. Tuttavia stavo già usando 'tableHeader (table, escape = F)' per definire i nomi delle mie colonne. Come posso ancora sfuggire i nomi delle intestazioni? – Paul
È possibile eseguire tale operazione utilizzando options
nella funzione renderDataTable()
in Lucido. Dalla pagina documentation di DT in Shiny, qualcosa del genere dovrebbe funzionare.
renderDataTable(head(iris, 20), options = list(
initComplete = JS(
"function(settings, json) {",
"$(this.api().table().header()).on({
mouseenter: function() {
//stuff to do on mouse enter
},
mouseleave: function() {
//stuff to do on mouse leave
}
});",
"}")
))
Questo probabilmente funziona per un testo per l'intera riga di intestazione, ma sto cercando un valore separato per ogni nome di colonna.Qualcosa può essere fatto usando 'colnames' in' renderDataTable' e tag HTML? – Sri
Ti riferisci a DataTable javascript in Shiny? – Shiva
Tabella dati che visualizzo in 'Shiny' utilizzando' renderDataTable' – Sri
possibilmente di interesse: http://stackoverflow.com/questions/16449252/tooltip-on-shiny-r – C8H10N4O2