我希望将print(df.to.print)
的输出打印在图表上。如果我可以将topleft
或topright
的位置放在调用“图例(...)”中,那将会很棒,但这只是一个奖励。
一些代码:
# A data.frame to play with
df.to.print <- structure(list(p.val = c(0.05, 0.1), self = c(0.0498, 0.0997),
H2007.REML = c(0, 0.01), H2007.ref = c(0, 0)), .Names = c("p.val",
"self", "H2007.REML", "H2007.ref"), row.names = c(NA, -2L), class = "data.frame")
# A simple plot
plot(1)
text(1,1, df.to.print )
# All of the entries are overlapping
# I can insert newlines easily enough
plot(1)
text(1,1, paste(as.character(df.to.print), collapse='\n'))
# But that looses all of the nice formatting in the data.frame.
# Which is easy enough to get on the console with:
print(df.to.print)
# Bonus points for 'topleft', 'topright', etc. like in legend().
任何帮助将不胜感激。
答案 0 :(得分:9)
试试这个:
plot(1)
text(0.6,1, paste(capture.output(df.to.print), collapse='\n'), pos=4, family="monospace")
pos=4
将文本放在指定坐标的右侧,并保留左对齐。尝试使用固定空间字体。
答案 1 :(得分:1)
我所知道的两个函数是 plotrix 包中的addtable2plot
,它可以用于基础R图形,而grid.table
来自< strong> gridExtra 包,可用于网格图形(即ggplot / lattice)。
至于我是如何找到它们的:我花了很多时间来回答关于SO的问题以便在R上变得更好,并且在这个过程中我发现“在R处变得更好”通常等同于“更好地在文档中找到答案“。
sos 包是一个好的开始。