【问题标题】:Multiple plot picture ggplot & Gridextra多图图片ggplot & Gridextra
【发布时间】:2018-09-10 14:28:25
【问题描述】:

我正在尝试使用 gridExtra 包创建三个相互重叠的 ggplot 图。

我使用的代码是这样的:

require(ggplot2)
library(gridExtra)
library(scales)
library(ggpubr)
library(tidyr)
library(reshape)
library(dplyr)

## GRAPHS

# yearly funding required
yearly1 <- ggplot(yearly, aes(x=year, y=Total_US_required/1000000)) + 
  ggtitle("Total Funding Required") + 
  geom_line(color="darkblue") + 
  labs(y="In Million USD", x="") + xlim(2006,2017)

# yearly funding received
yearly2 <- ggplot(yearly, aes(x=year, y=Total_US_received/1000000)) + 
  ggtitle("Total Funding Received") + 
  geom_line(color="darkblue") + 
  labs(y="", x="") + xlim(2006,2017)

# Yealy funding CERF
yearly3 <- ggplot(yearly, aes(x=year, y=Total_US_received_from.CERF/1000000)) + 
  ggtitle("Total Funding Received CERF") + 
  geom_line(color="darkblue") + 
  labs(y="", x="") + xlim(2006,2017)

## COMBINED PICTURES

tiff('fig1a.tiff', units="in", width=5, height=8.3, res=300)        
grid.arrange(yearly1, yearly2, yearly3, nrow=3, 
             left = textGrob("In Million USD", rot = 90, vjust = 1, hjust=0, 
                             gp = gpar(fontsize = 10)))
dev.off()

我收到以下错误消息:

Error in grid::textGrob(label = label, just = just, hjust = hjust, vjust = vjust,  : 
formal argument "gp" matched by multiple actual arguments

关于如何创建这张图片有什么建议吗?越简单越好。

这是我的数据(压缩):

structure(list(year = 2006:2010, Total_US_received_from.CERF = c(65091455.5, 
    204409211, 200351170.5, 180924822, 290493687.5), Total_US_required = c(828538873.5, 
    2986369814, 1554939106, 2144420061, 7724926517), Total_US_received = c(215790327.5, 
    1988581112, 1698825389, 1509823414, 4975642034)), row.names = c(NA, 
    5L), class = "data.frame")

【问题讨论】:

  • 嗨,我认为有一个错字(grid.arrange() 中的nmrow 应该是nrow)?否则我无法使用提供的代码重现您的错误。
  • @Z.Lin,已编辑。但是仍然会出现同样的错误。

标签: r ggplot2 gridextra


【解决方案1】:

使用来自ggpubr的ggarrange:

yearly1 <- ggplot(yearly, aes(x=year, y=Total_US_required/1000000)) + ggtitle("Total Funding Required") + geom_line(color="darkblue") + labs(y="In Million USD", x="") + xlim(2006,2017)

yearly2 <- ggplot(yearly, aes(x=year, y=Total_US_received/1000000)) + ggtitle("Total Funding Received") + geom_line(color="darkblue") + labs(y="In Million USD", x="") + xlim(2006,2017)

yearly3 <- ggplot(yearly, aes(x=year, y=Total_US_received_from.CERF/1000000)) + ggtitle("Total Funding Received CERF") + geom_line(color="darkblue") + labs(y="In Million USD", x="") + xlim(2006,2017)

ggarrange(yearly1, yearly2, yearly3, 
          ncol = 1, nrow = 3)

【讨论】:

  • 谢谢!看起来左边有一个“百万美元”文本也不适合你。
  • 老实说,我没有那样尝试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
相关资源
最近更新 更多