Я пытаюсь создать отдельные графики («x» и «y» - координаты) с помощью мультикатегориальной переменной (user1) с несколькими строками («эмоция»).Однако на каждом графике должно быть одно из двух возможных фоновых изображений ("body_side"), и у некоторых пользователей есть оба ("g_back" / "g_front"), у других - только одно.В конце я хочу создать страницу с 6 графиками (2X3), в то время как графики одного и того же пользователя1 с разными фонами должны отображаться на одной странице.Моя главная проблема сейчас заключается в настройке правильного фона для каждого изображения.
Я использую ggplot
с ggforce
для построения нескольких графиков на одной странице, но не могу найти способ правильно определить фоновые изображения.
annotation_custom(paste0("g", unique(getElement(body_s1_s1, "body_side"))[1]),-Inf, Inf,-Inf, Inf)
Aпримеры данных и изображения здесь https://drive.google.com/drive/u/0/folders/1dq2dbmgtT-SBmDaSfZBbgxdFqSZeCwx5. Мой текущий код:
img_front <- readJPEG("~/fr.jpg")
img_back <- readJPEG("~/bk.jpg")
g_back <- rasterGrob(img_back, height = 1, width = 1,interpolate = T )
g_front <- rasterGrob(img_front, height = 1, width = 1,interpolate = T )
load("~/body_s1_s1a.Rda")
pdf("~/mypdf.pdf", 7, 5)
for (i in seq(1, 1, 1)) {
print(ggplot(data = body_s1_s1a, aes(color = as.factor(body_s1_s1$emotion))) +
xlim(1, 3700) +
ylim(1, 6500) +
annotation_custom(paste0("g", unique(getElement(body_s1_s1, "body_side"))[1]),-Inf, Inf,-Inf, Inf) +
theme(panel.background = element_rect(fill = "lightblue",
colour = "lightblue",
size = 0.5,
linetype = "solid")) +
geom_path(aes_string(x = body_s1_s1$x, y = body_s1_s1$y), size = 1) +
coord_fixed(ratio = 1) +
labs(x = "",y = "") +
scale_fill_gradientn(colours = rev(rainbow(10))) +
theme(legend.position = "top", legend.title = element_blank()) +
facet_wrap_paginate(~user1*body_side, ncol = 3, nrow = 2, page = i) )
}
dev.off()