2015-06-12 19 views
16

Mi sto allontanando dalle tabelle di Word/Excel e sto provando a generare una tabella in R. Ho una cornice di dati che mi piacerebbe stampare semplicemente come trama, pur essendo in grado di ombreggiare/colorare le celle e generalmente giocare con l'estetica.Tracciare un frame di dati come tabella

x <- data.frame(row.names=paste("Name",1:10)) 
x[,1] <- 1:10 
x[,2] <- sample(1:100,10) 
x[,3] <- sample(LETTERS[1:26],10) 
colnames(x) <- c("Value 1", "Value 2", "Label") 

View(x) fornisce il formato esatto Vorrei che il mio tavolo, proprio come una trama save-grado.

Ho provato

plot(x,type="h") 

ma ha ricevuto un errore:

Error in plot.default(...) : formal argument "type" matched by multiple actual arguments

ho visto come tabelle di output con due colonne, ma come posso tracciare i frame di dati così come sono? Punti bonus per mostrare come attaccare quella tabella sotto un altro grafico a dispersione che ho creato, in modo che l'output ggsave abbia il grafico a dispersione con la tabella sottostante.

risposta

15

Dal momento che sto andando per i punti bonus:

#Plot your table with table Grob in the library(gridExtra) 
    ss <- tableGrob(x) 

    #Make a scatterplot of your data 
    k <- ggplot(x,aes(x=x$"Value 1",y=x$"Value 2")) + 
    geom_point() 

    #Arrange them as you want with grid.arrange 
    grid.arrange(k,ss) 

Puoi cambia il numero di righe, colonne, altezza e così via se è necessario.

Buona fortuna con esso enter image description here

http://cran.r-project.org/web/packages/gridExtra/gridExtra.pdf

+0

wow che semplice? fantastico grazie compagno! punti bonus assegnati! capita di avere una risposta alla mia domanda aggiuntiva nei commenti alla risposta di Robert, forse? – Alex

+0

Nelle tabelle che abbiamo mostrato t qui non vi è alcun taglio nella parola Nome 1, per quanto posso vedere, quindi come intendi? Inoltre, ciò potrebbe essere dovuto ai nomi row.names che si utilizzano. Quando si limita a dare una nuova colonna per i nomi 1-10, probabilmente andrebbe bene. – MichaelVE

+0

install.packages (gridExtra) Errore in install.packages (gridExtra): oggetto "gridExtra" non trovato ... Non lo so, se è ancora una libreria? – Coliban

15

Prova questo. Sì utilizzare pdf() per tracciare un file PDF (ad es mydf.pdf) o png() per tracciare un file PNG:

library(gridExtra) 
pdf("mypdf.pdf", height=6, width=4) 
grid.table(x) 
dev.off() 

enter image description here

+1

grazie ancora, a cura questo commento per dire tthat le stringhe nel rownames (ad esempio nome 1" nel mio esempio) sono tagliati fuori, indipendentemente da dove mi stringa li avvolgo, qualche idea? – Alex

+1

Ho usato invece table.grob che risolve questo problema e mi permette di usare grid.arrange in ritardo, grazie ancora a tutti! – Alex

Problemi correlati