在R中使用多面换行来格式化500多个图的最佳方法? [包含图片和代码]

问题描述

我正试图显示890个供应商的每周(x轴)销售额(y轴)。我想使用多面包装显示此数据,以快速查看供应商的销售量激增的地方。我的RStudio控制台中的图看起来像这样。这是有道理的,因为在此处渲染图并不是最好的视图,但是,即使需要多页PDF,我如何才能将图正确格式化为PDF。情节代码

ggplot(Holiday_Spike_Table,aes(x = FSCL_WK,y = SLS))+ 
  geom_col()+
  facet_wrap(~MVNDR_NM)

enter image description here

解决方法

这里是制作多张页面的方法-每个页面都有5x5的供应商。

我将与890个供应商一起使用一些虚拟数据。

library("tidyverse")

df <- data.frame(
  vendor = rep(seq_len(890),each = 30),x = rep.int(seq_len(30),890),y = runif(890 * 30),group = (rep(seq_len(890),each = 30) - 1) %/% 25
)

分成25个吠叫组。每个情节都有一个5x5的构面。

plots <- 
  df %>%
  group_by(group) %>%
  group_map(function(g,...) ggplot(g,aes(x,y)) + geom_line() + facet_wrap(~vendor,ncol = 5))

保存,以便每个图都有自己的页面。

ggsave("plots.pdf",gridExtra::marrangeGrob(plots,nrow = 1,ncol = 1))

enter image description here

,

为什么不将所有图单独插入一个pdf文件中,而完全摆脱facet_wrap。

可复制的示例:

if i > 0:
        dataset.to_csv('file_name.csv',index=False,mode='a',header=False)
    else:
        dataset.to_csv('file_name.csv',header=True)

以下给出与您相似的情节

library(ggplot2)
library(stringi)

## generate dummy data
df <- data.frame(x=sample(1:10000,1000,replace=TRUE),y=sample(1:100000,replace=TRUE))
df$id <- stri_rand_strings(n = nrow(df)/10,length = 4,pattern = "[A-Za-z0-9]")

完全摆脱facet_wrap并将图块刷新为单个pdf

ggplot(data = df,aes(x=x,y=y)) + geom_point() + geom_smooth() + facet_wrap(~id)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...