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