【问题标题】:Printing a dataframe to a pdf file将数据框打印到 pdf 文件
【发布时间】:2013-10-24 17:52:27
【问题描述】:

我想将数据框打印到 pdf 文件中。我尝试了以下方法:

 pdf("myfile.pdf")
 grid.table(df)
 dev.off()

这确实有效,但使用一些单元格填充颜色和其他一些格式以及行号来绘制数据框。

我只想绘制一个没有特定格式的数据框,尤其是没有行号。

我还需要提一下,我想将这个数据框与绘图一起绘制。 (在数据框上方绘制)。我试过使用:

 layout(matrix(c(1,2), nrow=2, byrow=TRUE), heights = c(2,1))

但数据框显示在我的绘图顶部(请参见下文)...我不知道为什么?

有没有简单的方法?

谢谢!

【问题讨论】:

  • 为什么不尝试使用 knitr 而不是 pdf 设备?
  • grid.table 的 show.rownames=F 参数删除行号。似乎 grid.table 的输出可以稍微调整一下。 ?grid.table
  • 我对@9​​87654324@ 不太熟悉,但我需要稍后将文件嵌入网页中。我熟悉为pdf 文件的png 这样做,但我不确定如何处理knitr。
  • @Chargaff 感谢您的提示!

标签: r plot dataframe gridextra


【解决方案1】:

您可以使用视口指定数据框的位置:

plot(NA, xlim=c(0,2), ylim=c(0,3), bty='n', xaxt='n', yaxt='n', xlab='', ylab='')
print(grid.table(df,show.rownames=F,vp=viewport(x=0.5,y=0.1)))

x 和 y 值是相对的,x=.5,y=.1 将 data.frame 放在绘图的底部中间。

【讨论】:

  • 谢谢。我应该摆脱layout() 以使其正常工作吗?目前,它没有改变任何东西:s
  • 是的,layout 仅在调用 plot.new 时生效 - grid.table 仅打印在现有图的顶部。
  • 好的,谢谢。但是出于某种奇怪的原因,当我调用plot 来绘制我的图表,然后调用print() 来绘制grid.table 时,绘图占据了整个pdf 页面,并且数据框仍然显示在图表的顶部......我我做错了什么......
  • 我认为vp 应该在grid.table 的括号内,而不是在print() 内
  • 请不要打印(),想想(g)树
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2015-10-19
  • 2016-03-08
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多