我正在使用 dprint
与 knitr
打包,主要是这样我可以突出显示表格中的行,我已经开始工作了,但是输出图像为脚注留下了相当大的空间,并且占用了不必要的空间。
有办法摆脱它吗?
另外,由于我对 dprint 还很陌生,如果有人对如何突出显示表格并在没有任何脚注的情况下使它们看起来很漂亮有更好的想法/建议……或者整理我的代码的方法,那就太好了!
Rmd 文件代码的示例如下...
```{r fig.height=10, fig.width=10, dev='jpeg'}
library("dprint")
k <- data.frame(matrix(1:100, 10,10))
CBs <- style(frmt.bdy=frmt(fontfamily="HersheySans"), frmt.tbl=frmt(bty="o", lwd=1),
frmt.col=frmt(fontfamily="HersheySans", bg="khaki", fontface="bold", lwd=2, bty="_"),
frmt.grp=frmt(fontfamily="HersheySans",bg="khaki", fontface="bold"),
frmt.main=frmt(fontfamily="HersheySans", fontface="bold", fontsize=12),
frmt.ftn=frmt(fontfamily="HersheySans"),
justify="right", tbl.buf=0)
x <- dprint(~., data=k,footnote=NA, pg.dim=c(10,10), margins=c(0.2,0.2,0.2,0.2),
style=CBs, row.hl=row.hl(which(k[,1]==5), col='red'),
fit.width=TRUE, fit.height=TRUE,
showmargins=TRUE, newpage=TRUE, main="TABLE TITLE")
```
提前致谢!
最佳答案
我没用过dprint
之前,但我看到了一些可能导致问题的不同事情:
dprint
似乎正在尝试使用。 fit.height
和 fit.width
.我认为只使用了其中一个(换句话说,生成的图像没有被拉伸(stretch)以适应高度和宽度,而只是似乎最有意义的一个,在这种情况下是宽度)。 在修补了一分钟后,这就是我所做的,以最大限度地减少脚注。但是,我不知道是否有更有效的方法来做到这一点。
```{r dev='jpeg'}
library("dprint")
k <- data.frame(matrix(1:100, 10,10))
CBs <- style(frmt.bdy=frmt(fontfamily="HersheySans"),
frmt.tbl=frmt(bty="o", lwd=1),
frmt.col=frmt(fontfamily="HersheySans", bg="khaki",
fontface="bold", lwd=2, bty="_"),
frmt.grp=frmt(fontfamily="HersheySans",bg="khaki",
fontface="bold"),
frmt.main=frmt(fontfamily="HersheySans", fontface="bold",
fontsize=12),
frmt.ftn=frmt(fontfamily="HersheySans"),
justify="right", tbl.buf=0)
x <- dprint(~., data=k, style=CBs, pg.dim = c(7, 4.5),
showmargins=TRUE, newpage=TRUE,
main="TABLE TITLE", fit.width=TRUE)
```
更新
到处玩以确定图像的大小是一个总拖累。但是,如果您在 R 中运行代码并查看
x
的结构,您会发现以下内容:str(x)
# List of 3
# $ cord1 : num [1:2] 0.2 6.8
# $ cord2 : Named num [1:2] 3.42 4.78
# ..- attr(*, "names")= chr [1:2] "" ""
# $ pagenum: num 2
或者,简单地说:
x$cord2
# 3.420247 4.782485
这些是您生成的图像的尺寸,这些信息可能很容易插入到一个函数中,以使您的绘图更好。
祝你好运!
关于image - r: dprint: 表格变更图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11664562/