R между графиками на множителе
Следуя предыдущему сообщению R Указав ширину панели ggplot2, я смог создать этот график:
![enter image description here]()
с этим кодом.
Вы можете найти выход dput (datos) в http://ubuntuone.com/0Nlb97mOeDhSbFrbFKCeEG
Теперь мой вопрос: как удалить/уменьшить пробел между графиками. Я нашел примеры с пакетом ggExtra, ggplot и facet, многоточиями с параметрами как plot.margin или panel.margin, но не смог найти, как применить к моему делу.
Спасибо за вашу помощь.
EDIT: Я только что заметил, что графики имеют одинаковую ширину. Необходимо, чтобы они имели одинаковую ширину, чтобы они могли делиться метками оси x от нижнего графика.
Ответы
Ответ 1
Использование xlab(NULL)
вместо xlab(" ")
приведет к удалению некоторого пробела в нижней части каждого графика.
Использование opts(plot.margin = unit(c(0,0,0,0), "cm"))
удалит небольшое пространство из ребер.
Я думаю, что у вас сложнейшие вещи, создавая 5 отдельных графов и рекомбинируя их. Окантовка намного проще.
mdatos <- melt(datos[, -1], id.vars = "dia")
(p_all <- ggplot(mdatos, aes(dia, value)) +
geom_line(colour = "blue") +
facet_grid(variable ~ ., scale = "free_y") +
xlab("Day") +
ylab(NULL)
)
Панели сюжета не имеют одинаковой ширины, потому что некоторые ярлыки оси y имеют три цифры цифр, а некоторые - только две. Либо измените форматирование оси y, либо используйте мое предложение фасетки.
Ответ 2
Вы можете компоновать и управлять полями нескольких подзаговоров с помощью par
и layout
. Например:
par (fig=c(0,1,0,1), # Figure region in the device display region (x1,x2,y1,y2)
omi=c(0,0,0.3,0), # global margins in inches (bottom, left, top, right)
mai=c(0.1,0.1,0.3,0.1)) # subplot margins in inches (bottom, left, top, right)
layout(matrix(1:4, 2, 2, byrow = TRUE))