12

我想在R中的绘图中添加一个小表格(例如作为图例) 。我想到了类似的东西:

t <- wantedTableMethod(
  row("param1", "param2", "param3", "param4")
  , row(value11, value12, value13, cell(value14, adj=0))
  , row(value21, value22, value23, value24)
  , row(value31, value32, value33, cell(value34, adj=1))
  border = F
)
plot(1,1)
legend("topleft", t)

列的所有值都应具有相同的偏移量。在R中是否有可能发生这样的事情,还是我需要手动对齐每个值?

4

2 回答 2

14

plotrix包有一个addtable2plot功能,您可以传递data.frame或传递matrix

使用帮助页面中的示例

library(plotrix)
testdf<-data.frame(Before=c(10,7,5,9),During=c(8,6,2,5),After=c(5,3,4,3))
 rownames(testdf)<-c("Red","Green","Blue","Lightblue")
 barp(testdf,main="Test addtable2plot",ylab="Value",
  names.arg=colnames(testdf),col=2:5)
 # show most of the options
 addtable2plot(0.7 ,8,testdf,bty="o",display.rownames=TRUE,hlines=TRUE,
  vlines=TRUE,title="The table")

在此处输入图像描述

它的设计目的是尽可能地相似legend

于 2013-03-14T11:22:14.413 回答
9

如果你真的不喜欢外部包,你也可以在baseR 中完成这个版本:

plot(1, 1)
v = 1:9
legend(
  'topright', ncol = 4L, title = 'Table',
  legend = c(
    '', 'Row1', 'Row2', 'Row3',
    'Col1', v[1:3], 
    'Col2', v[4:6], 
    'Col3', v[7:9]
  )
)

显示一个简单绘图有一个图例表的输出。 传说的标题是

警告编码器,由于v将被强制转换为character,因此您必须小心浮点格式(sprintf是您的朋友)。text.col如果您愿意,还有其他一些花里胡哨的东西可以帮助您增加情节。

于 2018-04-22T03:49:57.150 回答