使用textplot(gplots或PerformanceAnalytics)左对齐列

SFu*_*n28 6 r

我正在使用gpots中的textplot()将data.frame中的一些文本写入PDF设备(也尝试使用PerformanceAnalytics中的版本).我的par()选项是默认选项,除了我更改字体/边距(CM是我在网站配置文件中定义的系列)

par( family = "CM" , omi = rep( .5 , 4 ) )
Run Code Online (Sandbox Code Playgroud)

我试图让"Plot"列保持正确.这是我失败的尝试...注意文本中的重叠

textplot( tableOfContents , show.rownames = FALSE , show.colnames = TRUE , hadj = 0 )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正确合理的工作正常:

textplot( tableOfContents , show.rownames = FALSE , show.colnames = TRUE , hadj = 1 )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述




编辑 如果有人在texplot中努力对齐,我建议看看我写的这个修改版本:https://gist.github.com/1487363


EDIT2
您可能想删除我的cex = 1修复程序.经过一些阅读后,我明白函数参数中的cex应该应用于par(cex),我认为这是混乱和过度工程,但似乎是一个R标准实践

Joh*_*lby 7

看一下源代码,我认为最好的方法是略微修改,以便x位置适应hadj,而不是保持不变.向开发人员提出此更改可能是值得的.以下是您可以下载修改版本的要点:

https://gist.github.com/1482973

然后只需在R中使用它source(),你应该可以使用正常的功能.

source('textplot.R')
n = 10
data = data.frame(Section=1:n, Plot=replicate(n, paste(LETTERS[sample(26, sample(20), replace=T)], collapse='')), Page=sort(rep(1:4, len=n)), stringsAsFactors=FALSE)

textplot(data, show.rownames = FALSE, show.colnames = TRUE, hadj=0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述