多个地块并排 - 如何使所有地块具有相同的宽度?
Multiple plots side by side - How to make all plots the same widths?
我只是安排三个 ggplots,以便它们并排显示在保存的 png 中。因此,我遵循了 this answer 的有用线索。为了更清晰起见,我只显示了最右边情节的图例。从逻辑上讲,现在必须为最右边的图指定更大的宽度,因为图例。使用 scales::arrangeGrob()
我们可以实现这一点,例如c(600, 600, 750)
。
library(ggplot2)
economics$long <- with(economics, ifelse(uempmed > 8.61, 1, 0))
p <- ggplot(economics[economics$date < "1979-01-01", ],
aes(date, unemploy, color = long)) +
geom_line() + theme(legend.position="none")
q <- ggplot(economics[economics$date < "1991-01-01", ],
aes(date, unemploy, color = long)) +
geom_line() + theme(legend.position="none")
r <- ggplot(economics[economics$date < "2003-01-01", ],
aes(date, unemploy, color = long)) +
geom_line()
l <- list(p, q, r)
library(gridExtra)
ggsave("test.png",
arrangeGrob(grobs = l, nrow = 1, ncol = 3,
widths = c(600, 600, 750), heights = NULL,
padding = unit(0.5, "line")),
width = 18, height = 9, units = "cm", dpi = 600,
scale = 1.5)
我确信通过反复试验我可以调整最右边的图直到它适合。实际问题是,尽管 600
的值相同,但中间和最左边的图的宽度不匹配,这真的很烦人:
有谁知道如何使所有地块的宽度相同?
我只是安排三个 ggplots,以便它们并排显示在保存的 png 中。因此,我遵循了 this answer 的有用线索。为了更清晰起见,我只显示了最右边情节的图例。从逻辑上讲,现在必须为最右边的图指定更大的宽度,因为图例。使用 scales::arrangeGrob()
我们可以实现这一点,例如c(600, 600, 750)
。
library(ggplot2)
economics$long <- with(economics, ifelse(uempmed > 8.61, 1, 0))
p <- ggplot(economics[economics$date < "1979-01-01", ],
aes(date, unemploy, color = long)) +
geom_line() + theme(legend.position="none")
q <- ggplot(economics[economics$date < "1991-01-01", ],
aes(date, unemploy, color = long)) +
geom_line() + theme(legend.position="none")
r <- ggplot(economics[economics$date < "2003-01-01", ],
aes(date, unemploy, color = long)) +
geom_line()
l <- list(p, q, r)
library(gridExtra)
ggsave("test.png",
arrangeGrob(grobs = l, nrow = 1, ncol = 3,
widths = c(600, 600, 750), heights = NULL,
padding = unit(0.5, "line")),
width = 18, height = 9, units = "cm", dpi = 600,
scale = 1.5)
我确信通过反复试验我可以调整最右边的图直到它适合。实际问题是,尽管 600
的值相同,但中间和最左边的图的宽度不匹配,这真的很烦人:
有谁知道如何使所有地块的宽度相同?