我正在尝试使用 gridExtra 包的排列()函数在页面上放置多个 ggplot2 时间序列图。不幸的是,我发现 x 轴标签被推到了一起;尽管我的图表仅占一页的 1/4,但该图似乎放置了与整页图表相同数量的 x 轴标签。有一个更好的方法吗?我不想手动设置任何点,因为我将处理跨越不同日期范围和不同频率的大量图表。

这是一些复制问题的示例代码。

dfm <- data.frame(index=seq(from=as.Date("2000-01-01"), length.out=100, by="year"),
    x1=rnorm(100),
    x2=rnorm(100))
mydata <- melt(dfm, id="index")

pdf("test.pdf")
plot1 <- ggplot(mydata, aes(index, value, color=variable))+geom_line()
plot2 <- ggplot(mydata, aes(index, value, color=variable))+geom_line()
plot3 <- ggplot(mydata, aes(index, value, color=variable))+geom_line()
plot4 <- ggplot(mydata, aes(index, value, color=variable))+geom_line()
arrange(plot1, plot2, plot3, plot4, ncol=2, nrow=2)
dev.off()

最佳答案

要么旋转轴标签

+ opts(axis.text.x=theme_text(angle=45, hjust=1))

请注意,opts ggplot2 的当前版本中已弃用。此功能已移至 theme() :
+ theme(axis.text.x = element_text(angle = 45, hjust = 1))

或稀释 x 轴
+scale_x_datetime(major = "10 years")

要自动移动标签,我认为需要调整排列()函数(尽管我不确定如何)。

关于r - 在单个页面上放置多个 ggplot 图时日期标签重叠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3241868/

10-12 16:49
查看更多