2016-07-28 4 views
0

Ich verwende das ausgezeichnete -Paket für den Ausdruck einiger Ergebnisse in Rmarkdown. Eine meiner Tabellen zeigt Werte zwischen 0 und 1. Ich habe einen Vektor von 100 Farben erzeugt, die zwischen Weiß (#FFFFFF) und Rot (# FF5555) interpoliert wurden, die ich je nach Wert an den Hintergrund jeder Zelle anpassen möchte.Bedingte Färbung einer Zelle in htmlTable für R

Der logische Teil ist mir klar (multiplizieren Sie den Wert der Zelle mit 100, dann runden Sie und extrahieren Sie die Farbe aus dem entsprechenden Index des Farbvektors).

Worüber ich mir nicht sicher bin ist, eine passende Farbe für jede Zelle zu haben, wie mache ich um es zu malen?

Dank!

+0

Bereitstellung einer Form von minimalem [reproduzierbares Beispiel] (ht tp: //stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) wäre hilfreich. – MrFlick

Antwort

1

Ich glaube, Sie können es tun RGB-Farben mit wie:

paste0("background-color:RGB(255, ",value*255," , ",value*255 ,")" 

wo seine von 0 Ihr Zellenwert Wert auf 1

Beispiel (0 rot, 1 weiß)

df = as.data.frame(matrix(round(runif(15, 0, 1), 1),ncol = 3)) 

htmlTable::htmlTable(df,css.cell=apply(df,c(1,2),function(i)paste0("background-color:RGB(255, ",round(i*255,0)," , ",round(i*255,0) ,")"))) 

enter image description here

+0

'htmlTable' versteht CSS gut, so dass die Hex-Formatierung kein Problem ist. Das Problem ist die Syntax, bei der jeder Zelle die richtige Farbe zugewiesen wird. –

+1

siehe Beispiel was willst du? in RGB brauchst du kein additives df mit hex Farben – Batanichek

+2

Du kannst auch das 'condformat' Paket betrachten. Ich weiß, dass es Funktionen zum Anwenden von Farbverläufen auf Spalten bietet. – Benjamin