微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。