2017-01-25 12 views
2

grid.arrange関数を使用して結合した2つの格子プロットにAとBのラベルを追加しようとしています。 Bラベルを私が好きなところに現われるようにすることはできません。私は、文字Aを左上に、上の文字をBに、下の文字をBにしたいと思います。私は成功していない別の番号にラインコードを変更しようとしました。格子プロットとgrid.arrangeを持つmtextを使用

ここではいくつかの例のデータである:

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") 


#not in the correct area 

mtext("B",3,line=25,cex=1.2,at=0,family="serif") 


sessionInfo() 
R version 3.3.1 (2016-06-21) 
Platform: i386-w64-mingw32/i386 (32-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

答えて

4

マルチテキストは、()I強くアプローチをサポート

library(lattice) 
library(gridExtra) 
library(grid) 

p1 <- p2 <- xyplot(1~1) 

grid.arrange(p1, p2) 
grid.text(c("A","B"), x=0, y=c(0.5, 1), vjust=1, hjust=0, gp=gpar(fontface=4)) 

enter image description here

+0

ありがとう - 完全に働きました – user41509

0

、グリッド当量がgrid.textで、ベース・グラフィックスのためのものです@baptisteによって提案されたgrid.textを使用します。ただし、ベースRのテキスト注釈をある時点でグリッドベースのグラフィックと一緒に使用する必要がある場合は、他のものより先にplot.new()を介して新しいプロットデバイスを開くことを忘れないでください。可能であれば、グリッドの機能を使用することを忘れないでください。この問題を解決できる迅速なtext()ベースのアプローチです。

library(lattice) 
library(gridExtra) 
library(gridBase) 

## create and combine plots 
p1 <- p2 <- xyplot(1~1) 
p <- grid.arrange(p1, p2) 

## open new plot device 
plot.new() 

## navigate to base graphics plot region and insert grob 
vps <- gridBase::baseViewports() 
pushViewport(vps$inner, vps$figure, vps$plot) 

grid.draw(p) 

## add text annotations 
text(x = 0, y = c(.975, .45), labels = c("A", "B"), font = 2) 

enter image description here

関連する問題