我正试图使用gridExtra
包将三幅图叠加在一起。我已经尝试了第一个使用grid.arrange
的这里示例,它运行得非常好。
但是,当我尝试使用我自己的绘图时,我会得到每个绘图的轴,但是没有数据,所有的格式都被去掉了。最低工作实例:
library(ggplot2)
library(gridExtra)
popu_H0 <- seq(10, 30, length=100)
popu_H0_norm <- dnorm(popu_H0, mean = 20, sd = 4)
popu_H0_df <- as.data.frame(cbind(popu_H0, popu_H0_norm))
plot_H0 <- ggplot(popu_H0_df, aes(x=popu_H0, y=popu_H0_norm))
plot_H0 +
geom_line() +
theme(
text = element_text(size=20),
axis.title.x = element_text(vjust=0.1),
axis.text.x = element_text(size = rel(1.8)),
legend.position = "none",
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
axis.line.y = element_blank()
) +
xlab("New label") +
annotate("text", x = 20, y = 0.05, label = "Some annotation", size = 10)
grid.arrange(plot_H0, plot_H0, plot_H0, ncol = 1, nrow = 3)
ggplot
生成预期的输出,但grid.arrange
生成这。
发布于 2016-11-30 01:08:17
你忘了替换绘图对象了。
library(ggplot2)
library(gridExtra)
popu_H0 <- seq(10, 30, length=100)
popu_H0_norm <- dnorm(popu_H0, mean = 20, sd = 4)
popu_H0_df <- as.data.frame(cbind(popu_H0, popu_H0_norm))
plot_H0 <- ggplot(popu_H0_df, aes(x=popu_H0, y=popu_H0_norm))
plot_H0 <- plot_H0 + # Here you need `<-` to update the plot
geom_line() +
theme(
text = element_text(size=20),
axis.title.x = element_text(vjust=0.1),
axis.text.x = element_text(size = rel(1.8)),
legend.position = "none",
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
axis.line.y = element_blank()
) +
xlab("New label") +
annotate("text", x = 20, y = 0.05, label = "Some annotation", size = 10)
grid.arrange(plot_H0, plot_H0, plot_H0, ncol = 1, nrow = 3)
https://stackoverflow.com/questions/40878503
复制相似问题