[英]Adding title to legend in image.plot, library(fields)
我一直在使用在R帮助列表服务器上找到的image.plot(字段包)的修改版来绘制图例。 https://stat.ethz.ch/pipermail/r-help/2008-June/164700.html
library(fields)
imp <- `body<-`(image.plot,value=`[[<-`(body(image.plot),28,
quote({par(big.par)
par(plt = big.par$plt, xpd = TRUE)
par(mfg = mfg.save, new = FALSE)
invisible()})))
以下是示例数据集
m <- matrix(1:15,ncol=3)
par(mar=c(5,5,5,3))
imp(m,axes=FALSE)
box()
axis(1,axTicks(1),lab=letters[1:length(axTicks(1))])
但是,我想在图例中添加标题(最好垂直对齐)以指定单位。 我不知道可以在主体(image.plot)中的哪个位置进行修改,或者在调用imp时如何指定此内容。 当我尝试创建一个较大的布局以放置image.plot时,收到错误消息,该数字对于布局边距而言太大。
任何帮助,将不胜感激。
此后,我修改了代码,以便可以使用单独的命令绘制(3,2)面板,以便仅沿着底部水平绘制图例。 但是,我想有两个图例,在图的每一列下都有一个图例,但图例仅在右下方。 我知道我要在绘制(3,2)面板之前在设置的空白区域中绘制图例。
par( oma=c(8,2,1,1))
set.panel(3,2)
但是我想知道如何在我为传奇人物创造的空间中移动。 指定面似乎无效,也无法更改oma值。
par( oma=c(2,0,2,0))
image.plot(x,y,z, legend.only=TRUE, horizontal=TRUE, legend.mar=5,
legend.shrink = 0.8)
mtext(line=1, side=1, "cms", outer=F)
看起来fields
使用基本图形。 因此,您可以在使用mtext
绘制初始图后的任何位置添加文本。 我通过执行?fields
这个问题,在其中找到了具有很好示例的help( fields.hints)
。
我走到马口上,听到制造商的Image.Plot的回音。 很简单的回应! 下面提供了生成数据的3 x 2图,在两列的每一列下方都有一个图例。
library( fields)
# Generating the data
x<- 1: 10
y<- 1:15
obj1<-list( x=x,y=y, z= outer(x,y,"+"))
zlim1<- range( obj1$z)
obj2<-list( x=x,y=y, z= outer(x^2,y,"+")*100)
zlim2<- range( obj2$z)
set.panel( 3,2)
par(oma=c(8,2,1,1)) #ADDS EXTRA SPACE AT BOTTOM OF FIGURE TO PUT LEGENDS
par( mar=c(4,4,1,1))
ctab<- tim.colors(25)
image( obj1, zlim=zlim1, col=ctab)
image( obj2, zlim=zlim2, col=ctab)
image( obj1, zlim=zlim1, col=ctab)
image( obj2, zlim=zlim2, col=ctab)
image( obj1, zlim=zlim1, col=ctab)
image( obj2, zlim=zlim2, col=ctab)
par(oma=c(4,1,2,0))
# move back to the 5 th plot ( position = 3,1)
# First Legend under column 1
par( mfg=c(3,1))
image.plot( legend.only=TRUE, horizontal = TRUE, col=ctab, zlim =zlim1)
# Second legend under Column 2
par( mfg=c(3,2))
image.plot( legend.only=TRUE, horizontal =TRUE, col=ctab, zlim =zlim2)
布拉莫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.