标签: gridextra

从grid.arrange中删除边框

我正在使用gridExtra包grid.arrange函数组合多ggplot图.

我这样做:

p1<-ggplot(x, aes(Date, Value)) + geom_line()
p2<-ggplot(y, aes(Date, Score)) + geom_point()
grid.arrange(p1, p2,  main=textGrob("Head Line", gp=gpar(cex=1.5, fontface="bold", col="#990000")), ncol = 1, clip=TRUE)
Run Code Online (Sandbox Code Playgroud)

此命令在p1和p2之间放置边框.我找不到有关删除grid.arrange中的边框的任何信息.是否可以删除边框?

r ggplot2 gridextra

3
推荐指数
1
解决办法
5509
查看次数

从marrangeGrob(或rangingList)pdf中删除页码

marrangeGrobgridExtra整理grobs(通常在我的情况ggplots)的行,列和页面。它还为页面编号。

require(ggplot2)
require(plyr)
require(gridExtra)

p <- function(plotdata) {
    x <- ggplot(plotdata, aes(wt, mpg)) + 
        geom_point() + 
        ggtitle(plotdata$gear[1])
    return(x)
}

all <- dlply(mtcars, .(gear), p)

allarranged <- do.call(marrangeGrob, c(all, nrow=1, ncol=2))
ggsave("multipage.pdf", allarranged, width=12)
Run Code Online (Sandbox Code Playgroud)

那是一个愚蠢但可复制的例子。

现在检查的输出str(allarranged[[1]])以显示页码的对象。简化为必需品,它们在这里:

[[1]]
  $ children     :List of 5
  ..$GRID.frame.1925:List of 6
  .. ..$ children     :List of 5
  .. .. ..$ GRID.cellGrob.1927:List of 10
  .. .. .. ..$ children     :List of 1
  .. .. .. .. ..$ GRID.text.1845:List of 11
  .. .. .. …
Run Code Online (Sandbox Code Playgroud)

r gridextra

3
推荐指数
1
解决办法
2189
查看次数

如何降低gridExtra的grid.arrange中的主标题?

我使用gridExtra的grid.arrange创建了一个图表,并尝试在将整个图表保存到.png文件之前添加一个主标题.

使用main="TITLE"参数可以工作,但它会使用顶部边框刷新,无论我设置图表的高度如何.

我的问题:如何设置它以使主标题不会被顶部边框刷新?一种方法是为整个图表添加一个总体余量,但同样,我无法弄清楚如何.

作为一个例子,我从网格排列中修改了SandyMuspratt和Baptiste的代码,将表格和图形放在一个图像上:

library(ggplot2)
library(gridExtra)

x = read.table(text = "
               1/1/2010 10
               1/2/2010 20
               1/3/2010 15
               1/4/2010 56
               1/5/2010 46
               1/6/2010 15
               1/8/2010 15
               1/9/2010 15
               1/10/2010 20
               1/11/2010 15
               1/12/2010 15
               1/13/2010 40
               1/14/2010 15
               1/15/2010 15
               1/16/2010 70", sep = "", header = FALSE)

p1<-ggplot(x, aes(V2, V1)) + geom_point()
p2<-tableGrob(x)

png( filename = "TEST.png", width = 1700, height = 900, units = "px")
grid.arrange(p2, p1, main=textGrob("Total Data and Image", gp=gpar(cex=3)), …
Run Code Online (Sandbox Code Playgroud)

r margin title gridextra

3
推荐指数
1
解决办法
9338
查看次数

使用ggplot在一个页面上绘制多个图

我有一个循环生成的12个图,我想在一个页面上绘制3行和2列(总共2页).我知道如何在R中做到这一点

pdf("1.pdf")
par(mfrow = c(3, 2))
for (i in 1:12) {
  x <- 1:10
  y <- 2*x + rnorm(x)
  plot(x, y)
}
dev.off()
Run Code Online (Sandbox Code Playgroud)

但如何使用ggplot

library(ggplot2)
library(grid)
library(gridExtra)
for (i in 1:12) {
  x <- 1:10
  y <- 2*x + rnorm(x)
  qplot(x, y)
}
Run Code Online (Sandbox Code Playgroud)

我想我必须使用grid.arrange但需要一些帮助.谢谢.

plot r ggplot2 gridextra

3
推荐指数
1
解决办法
2603
查看次数

绘制一个grobs列表

披露:我不确定如何为这个问题制作一个可重复的例子.

我正在尝试使用gridExtra包绘制一个grobs列表.

我有一些看起来像这样的代码:

## Make Graphic Objects for Spec and raw traces
for (i in 1:length(morletPlots)){
  gridplots_Spec[[i]]=ggplotGrob(morletPlots[[i]])
  gridplots_Raw[[i]]=ggplotGrob(rawPlot[[i]])
  gridplots_Raw[[i]]$widths=gridplots_Spec[[i]]$widths
}
names(gridplots_Spec)=names(morletPlots)
names(gridplots_Raw)=names(rawPlot)

## Combine spec and Raw traces
g=list()
for (i in 1:length(rawPlot)){
    g[[i]]=arrangeGrob(gridplots_Spec[i],gridplots_Raw[i],heights=c(4/5,1/5))
}

numPlots = as.numeric(length(g))

##Plot both
for (i in 1:numPlots){

  grid.draw(g[i],ncol=2)
}
Run Code Online (Sandbox Code Playgroud)

让我来看看代码.

morletPlots = ggplots列表

rawplot = ggplots列表

gridplots_specgridplots_Raw=上面的ggplots中的grobs列表.

g=上面两个grobs的列表,如此组合gridplots_spec[1],gridplots_raw[1]依此类推等等列表的长度.

现在我的目标是两个将所有这些分为两列.但每当我通过gridplots_spec[i]grid.draw循环时,我都会收到一个错误:

Error in UseMethod("grid.draw") : no applicable method for 'grid.draw' applied to …

r gridextra grob

3
推荐指数
1
解决办法
2423
查看次数

marrangeGrob每页奇数个图

我有一个图表列表,我正在使用marrangeGrob每页编写多个图表.这给了我每页6个图:

marrangeGrob(plots, nrow=3, ncol=2, top=NULL)
Run Code Online (Sandbox Code Playgroud)

但我需要的是每页5个图(即右下方的绘图区域留空)

以下是基于我的数据子集的可重现示例:

> CohData
     Name ScenID ScenName Year VarName Units value
1  Site01      0     Hind 2000     ANC ueq/L 28.23
2  Site02      0     Hind 2000     ANC ueq/L 35.34
3  Site03      0     Hind 2000     ANC ueq/L 31.73
4  Site04      0     Hind 2000     ANC ueq/L 54.21
5  Site05      0     Hind 2000     ANC ueq/L 28.23
6  Site01      1       BC 2020     ANC ueq/L 45.01
7  Site02      1       BC 2020     ANC ueq/L 32.86
8  Site03      1       BC 2020     ANC …
Run Code Online (Sandbox Code Playgroud)

r gridextra

3
推荐指数
1
解决办法
864
查看次数

无法禁用gridExtra的R markdown输出(附加注释)

在我的降价报告中,我使用了2个块.

第一:

```{r, include = FALSE, echo=FALSE, results='asis'}```
Run Code Online (Sandbox Code Playgroud)

我加载所有包并进行计算.

第二

{r, fig.margin = TRUE, fig.width=10,
fig.height=4.5, echo=FALSE, results='asis', 
message=FALSE, warning = FALSE} 
Run Code Online (Sandbox Code Playgroud)

我有循环的地方我过滤数据我在第一个块中生成,并为每个我制作ggplots.

我的问题是,当我产生第二块2个地块由我结合grid.arrange他们一个网格,但有更多的评论,我不希望显示.

TableGrob (2 x 2) "arrange": 2 grobs
  z     cells    name           grob
1 1 (1-2,1-1) arrange gtable[layout]
2 2 (1-2,2-2) arrange gtable[layout]
Run Code Online (Sandbox Code Playgroud)
title: "Test"
author: "Maybe It's You"
date: "2016.09.01"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(grid)
library(gridExtra)
library(ggplot2)

lay <- rbind(c(1,2),
             c(1,2))
gs <- list()

```


```{r cars}
summary(cars)
```

## Including Plots …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 rstudio r-markdown gridextra

3
推荐指数
1
解决办法
1735
查看次数

使用带有格子图和 grid.arrange 的多行文本

我正在尝试将 A 和 B 标签添加到我使用 grid.arrange 函数组合的两个点阵图中。我无法让 B 标签出现在我想要的位置。我希望字母 A 位于顶部图的左侧和上方,而字母 B 位于底部图的左侧和上方。我尝试将行代码更改为不同的数字,但没有成功。

以下是一些示例数据:

  data1<-data.frame(x=c(1:60),y=rep(c("A","B"),each=30),w=rep(c("V1","V2","V3"),times=20))

Plotting Code
require(lattice);require(grid.Extra)

p1<-bwplot(x~y, data = data1, groups = w, 
       pch = "|", box.width = 1/6,  par.settings =mytheme ,scales=list(x=list(cex=1.2),y=list(cex=1.2)),
       ylab=list("Number of Scallops per Station",fontsize=15),xlab=list("Strata",fontsize=15),
       panel = panel.superpose,
       panel.groups = function(x, y, ..., cex,group.number,col) { 
           panel.bwplot(x + (group.number-1.5)/6,y,...) 
       }) 

p2<-barchart(x~y|w,type="count",layout=c(3,1),data=data1,
    col="light gray", xlab="Binned Number of Scallops per Station",ylab="Count",horizontal=F,
    strip = strip.custom(bg="white",strip.levels = T),as.table=T,origin=0,family="A",
    scales=list(relation="same",alternating=1,x=list(cex=1.2),y=list(cex=1.2)),
    par.settings = list( grid.pars = 
    list(fontfamily = 'serif',cex=1.2)),
    panel=function(x,y,...){
    panel.barchart(x,y,...)})

grid.arrange(p1,p2)

mtext("A",3,line=2,cex=1.2,at=0,family="serif") …
Run Code Online (Sandbox Code Playgroud)

r lattice gridextra

3
推荐指数
1
解决办法
917
查看次数

使用 grid.arrange 为使用 gridExtra::grid.arrange 制作的多个图添加标题

我必须使用 gridExtra::grid.arrange 来绘制除彼此之外的多个图,因为我使用该包来创建图的拟合。我必须使用 grid.arrange 为绘图创建一个标题。现在我想将两者结合起来,但不知道如何结合。所以:我想绘制彼此之外的几个数字,并给它们一个不同的标题。

我有 euler1 和 euler2 适合 tat 代表我在欧拉图中的数据。为了绘制除海誓山盟之外的 2 个图,此代码对我有用:

gridExtra::grid.arrange(plot(euler1),plot(euler2))
Run Code Online (Sandbox Code Playgroud)

为了给一个情节一个标题,这个代码对我有用:

plot1 <- plot(euler1)
grid.arrange(grobs = list(plot1), top = "Title 1")
Run Code Online (Sandbox Code Playgroud)

现在,我想结合这两个代码。我该怎么做?

我尝试例如(但不起作用):

plot1 <- plot(euler1)
plot2 <- plot(euler2)
gridExtra::grid.arrange(plot1, plot2, grobs = list(plot1, plot2), top = list("Title 1","Title 2"))
Run Code Online (Sandbox Code Playgroud)

亲切的问候,朱迪思

grid gridextra

3
推荐指数
1
解决办法
8087
查看次数

R中多个变量的高低值并排geom_boxplot?

我正在尝试创建boxplot一个比较obAB在多个位置(即开始、中间、结束)的TopLow值(在这种情况下为10%)。我正在尝试使用gather, facet_wrap, grid.arrange,ggplot功能,R但无法将它们放在一起。到目前为止,这是我的代码 - 我将不胜感激。

library(tidyverse)
library(gridExtra)

DF_1 = data.frame(Ob = runif(100, 10,80), A = runif(100, 5, 90), B = runif(100, 3,85), loc = rep("Start",100))
DF_2 = data.frame(Ob = runif(100, 10,80), A = runif(100, 5, 90), B = runif(100, 3,85), loc = rep("Mid",100))
DF_3 = data.frame(Ob = runif(100, 10,80), A = runif(100, 5, 90), B = runif(100, 3,85), loc = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 facet-wrap boxplot gridextra

3
推荐指数
1
解决办法
103
查看次数

标签 统计

gridextra ×10

r ×9

ggplot2 ×4

boxplot ×1

facet-wrap ×1

grid ×1

grob ×1

lattice ×1

margin ×1

plot ×1

r-markdown ×1

rstudio ×1

title ×1