ggplot2:为什么 grid.arrange 不工作?
ggplot2: why grid.arrange not working?
我想在 ggplot2
的同一个图中绘制两条线 char。我知道您可以使用 grid.arrange 来做到这一点,但我的代码中肯定遗漏了一些东西。
这是我的数据,我想在其中绘制时间和速率
motor;trace;time;rate
monetDBIE;1m;5448;183553
monetDBIE;2m;8734;228990
monetDBIE;5m;19468;256831
Jena;1m;8273;120875
Jena;2m;16916;118231
Jena;5m;44776;111666
PGSQLIE;1m;6859;145793
PGSQLIE;2m;13106;152601
PGSQLIE;5m;32793;152471
这是我的代码
require("ggplot2")
require("gridExtra")
w <- read.csv(file="loading.csv", head=TRUE, sep=";")
# first plot
p <- ggplot(data=w, aes(x=trace, y=time, colour=motor, shape=motor))
p <- p + geom_point(size=4)
p <- p + geom_line(size=1,aes(group=motor))
p <- p + geom_text(aes(label=time), hjust=-0.2, vjust=1)
p <- p + ggtitle("Triplestores ")
p <- p + labs(x = "Traces", y = "Temps (ms)")
p <- p + theme_bw()
# second plot
p2 <- ggplot(data=w, aes(x=trace, y=rate, colour=motor, shape=motor))
p2 <- p2 + labs(x = "Traces", y = "débit de chargement (triplets/s)")
p2 <- p2 + geom_point(size=4)
p2 <- p2 + geom_line(size=1,aes(group=motor))
p2 <- p2 + geom_text(aes(label=rate), hjust=-0.2, vjust=1)
p2 <- p2 + theme_bw()
grid.arrange(p, p2, nrow=2, ncol=1)
ggsave(file="loading.pdf")
但不幸的是我仍然只有一个字符 p2 看图片
为什么?
像这样将 grid.arrange
包裹在 pdf
中:
library(ggplot2)
library(gridExtra)
p1 <- p2 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar()
pdf(tf <- tempfile(fileext = ".pdf"))
grid.arrange(p1, p2)
dev.off()
shell.exec(tf)
我认为更好的解决方案是完全避免使用 grid.arrange
并简单地使用 arrangeGrob
,这样可以灵活地使用 ggsave
函数。
big_plot <- arrangeGrob(p, p2, nrow=2, ncol=1)
print(big_plot)
ggsave(big_plot, ...)
我想在 ggplot2
的同一个图中绘制两条线 char。我知道您可以使用 grid.arrange 来做到这一点,但我的代码中肯定遗漏了一些东西。
这是我的数据,我想在其中绘制时间和速率
motor;trace;time;rate
monetDBIE;1m;5448;183553
monetDBIE;2m;8734;228990
monetDBIE;5m;19468;256831
Jena;1m;8273;120875
Jena;2m;16916;118231
Jena;5m;44776;111666
PGSQLIE;1m;6859;145793
PGSQLIE;2m;13106;152601
PGSQLIE;5m;32793;152471
这是我的代码
require("ggplot2")
require("gridExtra")
w <- read.csv(file="loading.csv", head=TRUE, sep=";")
# first plot
p <- ggplot(data=w, aes(x=trace, y=time, colour=motor, shape=motor))
p <- p + geom_point(size=4)
p <- p + geom_line(size=1,aes(group=motor))
p <- p + geom_text(aes(label=time), hjust=-0.2, vjust=1)
p <- p + ggtitle("Triplestores ")
p <- p + labs(x = "Traces", y = "Temps (ms)")
p <- p + theme_bw()
# second plot
p2 <- ggplot(data=w, aes(x=trace, y=rate, colour=motor, shape=motor))
p2 <- p2 + labs(x = "Traces", y = "débit de chargement (triplets/s)")
p2 <- p2 + geom_point(size=4)
p2 <- p2 + geom_line(size=1,aes(group=motor))
p2 <- p2 + geom_text(aes(label=rate), hjust=-0.2, vjust=1)
p2 <- p2 + theme_bw()
grid.arrange(p, p2, nrow=2, ncol=1)
ggsave(file="loading.pdf")
但不幸的是我仍然只有一个字符 p2 看图片
为什么?
像这样将 grid.arrange
包裹在 pdf
中:
library(ggplot2)
library(gridExtra)
p1 <- p2 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar()
pdf(tf <- tempfile(fileext = ".pdf"))
grid.arrange(p1, p2)
dev.off()
shell.exec(tf)
我认为更好的解决方案是完全避免使用 grid.arrange
并简单地使用 arrangeGrob
,这样可以灵活地使用 ggsave
函数。
big_plot <- arrangeGrob(p, p2, nrow=2, ncol=1)
print(big_plot)
ggsave(big_plot, ...)