У меня есть код, который создает два отдельных ggplots и объединяет их в одну фигуру, используя gridExtra::grid.arrange
.
. Я могу сохранить эту объединенную фигуру как PNG, используя ggsave()
, но если я попытаюсь сохранить его в виде файла SVG я получаю только вторую цифру. Как я могу получить обе фигуры в одном файле SVG?
Редактировать : Этот вопрос выходит за рамки вопроса, рассмотренного в Как сохранить график, созданный с помощью ggplot2, как SVG . ggsave()
для SVG хорошо работает для отдельных изображений, но НЕ РАБОТАЕТ с SVG для изображений, составленных с grid.arrange
.
Вот рисунок, который я пытаюсь создать. Код для этого примера приведен ниже.
library(ggplot2)
library(gridExtra)
data(EastIndiesTrade,package="GDAdata")
c1 <- ggplot(EastIndiesTrade, aes(x=Year, y=Exports)) +
ylim(0,2000) +
geom_line(colour="black", size=2) +
geom_line(aes(x=Year, y=Imports), colour="red", size=2) +
geom_ribbon(aes(ymin=Exports, ymax=Imports), fill="pink",alpha=0.5) +
ylab("Exports and Imports (millions of pounds)") +
annotate("text", x = 1710, y = 0, label = "Exports", size=5) +
annotate("text", x = 1770, y = 1620, label = "Imports", color="red", size=5) +
annotate("text", x = 1732, y = 1950, label = "Balance of Trade to the East Indies", color="black", size=6) +
theme_bw()
c2 <- ggplot(EastIndiesTrade, aes(x=Year,
y=Imports-Exports)) + geom_line(colour="blue", size=2) +
ylab("Balance = Imports - Exports (millions of pounds)") +
geom_ribbon(aes(ymin=Imports-Exports, ymax=0), fill="pink",alpha=0.5) +
annotate("text", x = 1711, y = 30, label = "Our Deficit", color="black", size=6) +
theme_bw()
grid.arrange(c1, c2, nrow=1)
Теперь я пытаюсь сохранить их с помощью ggsave()
:
ggsave("east-indies-ggplot2.png", width=10, height=4) # OK
ggsave("east-indies-ggplot2.svg", width=10, height=4) # not OK -- only get the right panel