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

不同页面上的多个图形并另存为pdf

如何解决不同页面上的多个图形并另存为pdf

我使用 facet_wrap 函数制作了多个图表,但它们都出现在一页上。我看了很多问题,但不幸的是还没有成功。如果我可以在 pdf 中将其打印为每页 1 个图形,那就太好了。 这是我的数据:

co1<- tibble(age= c(10:14 ),pop=c(10,12,14,16,18),cn= c(10.1,12.1,14.25,16.09,18.3),country ="a")
co2<- tibble(age= c(10:14 ),pop=c(10.5,12.6,14.5,16.5,18.5),cn= c(10.6,12.5,14.3,16.7,18.6),country ="b")
co3<- tibble(age= c(10:14 ),pop=c(10.9,12.9,14.9,16.9,18.9),cn= c(11.9,13.9,15.9,17.9,19.9),country ="c")
df<- rbind(co1,co2,co3)

这是我在一页上制作多个图表的代码

ggplot(data=df,aes(x=age,group = country))+
  geom_line(aes(y=pop),colour="red")+
  geom_line(aes(y=cn),colour="blue")+
  facet_wrap(~country) +
  scale_y_continuous(labels = scales::comma)+
  xlab("age") + ylab("population")

解决方法

利用 ggforce::facet_wrap_paginate 你可以:

library(ggforce)
library(tibble)

co1<- tibble(age= c(10:14 ),pop=c(10,12,14,16,18),cn= c(10.1,12.1,14.25,16.09,18.3),country ="a")
co2<- tibble(age= c(10:14 ),pop=c(10.5,12.6,14.5,16.5,18.5),cn= c(10.6,12.5,14.3,16.7,18.6),country ="b")
co3<- tibble(age= c(10:14 ),pop=c(10.9,12.9,14.9,16.9,18.9),cn= c(11.9,13.9,15.9,17.9,19.9),country ="c")
df<- rbind(co1,co2,co3)

pdf("multi_page.pdf",width = 16 / 2.54,height = 12 / 2.54)
lapply(seq_along(unique(df$country)),function(page) {
  ggplot(data=df,aes(x=age,group = country))+
    # If you want a legend: Map on aesthetics! 
    geom_line(aes(y=pop,colour="pop"))+
    geom_line(aes(y=cn,colour="cn"))+
    # Set the colors via scale_xxx_manual 
    scale_color_manual(values = c(pop = "blue",cn = "red")) +
    facet_wrap_paginate(~country,ncol = 1,nrow = 1,page = page) +
    scale_y_continuous(labels = scales::comma)+
    xlab("age") + ylab("population")
})
dev.off()

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

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?