这有可能用ggplot2重现这个格子图吗?
library(latticeExtra)
data(mtcars)
x <- t(as.matrix(scale(mtcars)))
dd.row <- as.dendrogram(hclust(dist(x)))
row.ord <- order.dendrogram(dd.row)
dd.col <- as.dendrogram(hclust(dist(t(x))))
col.ord <- order.dendrogram(dd.col)
library(lattice)
levelplot(x[row.ord, col.ord],
aspect = "fill",
scales = list(x = list(rot = 90)),
colorkey = list(space = "left"),
legend =
list(right =
list(fun = dendrogramGrob,
args =
list(x = dd.col, ord = col.ord,
side = "right",
size = 10)),
top =
list(fun = dendrogramGrob,
args =
list(x = dd.row,
side = "top",
size = 10))))
Run Code Online (Sandbox Code Playgroud)

在基本图形中,我可以通过执行以下操作创建4个面板图形窗格:
par(mfrow=c(2,2))
for (i in 1:4){
plot(density(rnorm(100)))
}
Run Code Online (Sandbox Code Playgroud)
结果

我想用ggplot2做同样的事情,但我无法弄清楚如何做到这一点.我不能使用facet,因为我的真实数据,与这个简单的例子不同,是非常不同的结构,我想要两个图表是点图表,两个图表是直方图.如何在ggplot2中创建面板或窗格?
我想知道是否可以使用ggplot2创建一个包含图像的多图(如facet):

我不知道如何安排图像数据传递给它们geom_raster()或如何在数据框中包含图像......
我试过的:
> img1 <- readPNG('1.png')
> img2 <- readPNG('2.png')
> img3 <- readPNG('3.png')
> test <- data.frame(c(1,2,3),c(5,2,7),c(img1,img2,img3))
> nrow(test)
[1] 4343040
Run Code Online (Sandbox Code Playgroud)
我已经有了一个问题,建立一个内部图像的数据框...每3行重复一次(我想每像素一次).
我想在带有grid.arrange的网格上排列N ggplot(每个面都是多面的)。
library(tidyverse)
library(ggplot2)
library(gridExtra)
plots <- lapply(unique(mtcars$cyl), function(cyl) {
data <- mtcars %>% filter(cyl == cyl)
ggplot(data, aes(x=mpg, y=hp))+
geom_point(color = "blue")+
facet_wrap(.~carb)}) %>%
do.call(grid.arrange, .)
do.call(grid.arrange, plots )
Run Code Online (Sandbox Code Playgroud)
问题是所有图都基于整个数据集,并且它们呈现相同的图,而当我按行过滤它们时,它们应该保持不同
data <- mtcars %>% filter(cyl == cyl)。
我遇到了这个问题,它有一个非常酷的图表。我对左侧的图形感兴趣,其中包含跨时间的矩形点。
这些矩形点不是 R 提供 geom_point() 命令的默认点集的一部分。虽然我可以重现图表(或至少一个非常相似的图表),但我不知道如何让这些点看起来像那样。
我怎样才能做到这一点?