3

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 不熟悉)。

4

1 回答 1

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"
于 2014-04-11T09:03:55.887 回答