R:将文本添加到绘图区域外的右下角的图中

kur*_*dtc 10 plot text r

我正在绘制baseR中的多个图形,我试图在我的图形的下部右下角绘制一个文本.我尝试过使用,mtext()但这并没有给我想要的结果.你会怎么做?最终的想法是生成如下图所示的内容.我怎么能这样做?

在此输入图像描述

这是我用来生成图的代码.

xy <- data.frame(NAME=c("NAME1", "NAME1","NAME1","NAME1","NAME2","NAME2","NAME2"),ID=c(47,47,47,47,259,259,259),YEAR=c(1932,1942,1965,1989,2007,2008,2014),VALUE=c(0,NA,-6,-16,0,-9,-28), test=c("text1","text1","text1","text1","text2","text2","text2"))

# split data by index 
ind <- split(x = xy,f = xy[,'ID'])

plot1 <- function(x) {
  fname <- paste0(x[1, 'ID'], '.png')
  png(fname, width=1679, height=1165, res=150)
  par(mar=c(6,8,6,5))
  plot(x = c(1946, 2014),
       y = range(x$VALUE, na.rm=TRUE),
       type='n',
       main=x[1, 'NAME'],
       xlab="Time [Years]",
       ylab="Value [m]")
  axis(2, at = seq(-100000, 100000, 100), cex.axis=1, labels=FALSE, tcl=-0.3)
  points(x[,c('YEAR','VALUE')], type="l", lwd=2)
  points(x[,c('YEAR','VALUE')], type="p", lwd=1, cex=0.5, pch=21, bg='white')
  abline(h=0)
  mtext(x$test, side=1, )

  dev.off()
}

plot2 <- function(x) {
  fname <- paste0(x[1, 'ID'], '.png')
  png(fname, width=1679, height=1165, res=150)    
  par(mar=c(6,8,6,5))
  plot(x[,c('YEAR','VALUE')],
       type='n',
       main=x[1, 'NAME'],
       xlab="Time [Years]",
       ylab="value [m]")
  axis(2, at = seq(-100000, 100000, 100), cex.axis=1, labels=FALSE, tcl=-0.3)
  points(x[,c('YEAR','VALUE')], type="l", lwd=2)
  points(x[,c('YEAR','VALUE')], type="p", lwd=1, cex=0.5, pch=21, bg='white')
  abline(h=0)
  mtext(x$test, side=1)
  dev.off() 
}

lapply(ind, function(x) ifelse(any(x$YEAR < 1946 & x$YEAR < 2014), plot2(x), plot1(x)))
Run Code Online (Sandbox Code Playgroud)

Hon*_*Zhu 11

有了mtext()你可以在情节利润率把你的文字.在您的情况下,您可以尝试使用参数lineat.看到help(mtext)

plot(1:10,10:1)
mtext('text is here', side=1, line=3.5, at=9)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


and*_*bri 6

plot(1:10,10:1)
text(c(0,6,9), -0.6, paste('hello world', c(1:3)), xpd=NA)
Run Code Online (Sandbox Code Playgroud)

使用该text()功能,您可以参考定位到绘图的坐标,并且可以在一个绘图元素上绘制多个文本元素。

xpd参数允许您在三种可能的位置上进行选择(可以用于点和线等其他元素):

  1. FALSE :仅在情节内
  2. TRUE :在外部绘图区域
  3. NA :绘图设备上的任何地方


Ber*_*ool 4

plot(1)
title(sub="hallo", adj=1, line=3, font=2)
Run Code Online (Sandbox Code Playgroud)