改变grImport中Picture类的颜色

时间:2014-04-11 03:13:15

标签: r grimport

我找到了一个非常好的包grImport来读取.ps文件(矢量与栅格)。它运作良好,读者可以在这里找到包信息:

http://cran.r-project.org/web/packages/grImport/grImport.pdf

以及此处的演示:

https://www.stat.auckland.ac.nz/~paul/R/grImport/import.pdf

我希望能够更改类Picture的对象中的插槽颜色,但无法弄清楚如何。所以使用这段代码:

library(grImport); library(grid)
## Create a generic .ps file to read in
postscript("foo.ps")
plot.new()
text(.5, 0.5, "A", cex = 45)
dev.off()  

## read in the .ps object
PostScriptTrace("foo.ps")
foo <- readPicture("foo.ps.xml")
grid.picture(foo)

如何更改对象foo以使A绘图为浅灰色,比如#D0D0D0

我试过了:

class(foo)
foo
foo@rgb

我认为这是一个S4对象,这可能就是我挣扎的原因(我对s4缺乏了解)。

1 个答案:

答案 0 :(得分:2)

使用str探索S4对象的结构:

R> str(foo)
Formal class 'Picture' [package "grImport"] with 2 slots
  ..@ paths  :List of 1
  .. ..$ text:Formal class 'PictureText' [package "grImport"] with 14 slots
  .. .. .. ..@ string   : Named chr "A"
  .. .. .. .. ..- attr(*, "names")= chr "string"
  .. .. .. ..@ w        : num 3602
  .. .. .. ..@ h        : num 5400
  .. .. .. ..@ bbox     : num [1:4] 904 2644 4840 6154
  .. .. .. ..@ angle    : num 90
  .. .. .. ..@ letters  :List of 1

  ...

可以通过以下方式更改颜色:

foo@paths$text@letters$path@rgb <- "#D0D0D0"