Ich versuche, zwei Plots in derselben .jpg mit arrangeGrob() zu plattieren. Ich habe gerade angefangen, etwas über Grids und Grobs zu lernen und ich weiß, was das Problem ist: pheatmap ist ein Grid-Objekt und enthält grob-Objekte, die es mir nicht erlauben, es in arrayGrob zu platzieren. Ist das wahr?Verwenden einer Pheatmap in arrangeGrob
Würde ich irgendwie den qplot in ein Raster und die pheatmap in ein Raster legen und diese Raster dann in ein neues Raster legen?
library(grid)
library(gridExtra)
library(pheatmap)
library(ggplot2)
hmdat=rbind(c(1,2,3),
c(3,4,5),
c(5,6,7))
hm=pheatmap(hmdat)
qp=qplot(1,1)
lm=rbind(c(1,2,2),
c(1,2,2))
jpeg("plots.jpg")
arrangeGrob(qp,hm, layout_matrix=lm)
dev.off()
Der obige Code-Schnipsel läuft ganz gut, wenn
arrangeGrob(qp,qp, layout_matrix=lm)
zu liefern Versuchen Sie 'arrangeGrob (qp, hm [[4]], layout_matrix = lm) '. Die Manualpage für 'pheatmap()' gibt im Abschnitt 'Values' eindeutig an, dass sie eine' liste' von Komponenten zurückgibt, aber sie erwähnt nicht die Komponente # 4, welche die 'gtable' des Plots ist. Sie müssen es speziell indizieren, da es nicht die 'print'-Methode-Suche/Ausführung von R für dieses Objekt innerhalb des Funktionsaufrufs auslöst. – hrbrmstr
Das funktioniert perfekt, danke! Irgendwelche Vorschläge, wie ich die Lösung für mich selbst finden kann, wenn ich wieder mit dieser Art von Problem konfrontiert bin? Oder ist Listenwert 4 das Gtable nur eine Sache, die Sie irgendwie wissen müssen? Wenn Sie Ihre Lösung als Antwort eingeben, werde ich die Frage beantworten. – Xizam