Изменить цвет в классе изображения в 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 ответ

Решение

Использование 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"
Другие вопросы по тегам