R 如何为图形设备设置默认参数?
我喜欢读黑底白字。所以,在R中,我会做一些如下的事情:R 如何为图形设备设置默认参数?,r,R,我喜欢读黑底白字。所以,在R中,我会做一些如下的事情: par (bg = "black") par (fg = "ivory1") 我希望默认设置这些选项。但是,我们不能简单地在.Rprofile中写入这些行,因为据我所知,在执行图形设备时,图形设备尚未初始化。相反,正如中所建议的,应该重新分配options()$device,以包括必要的选项设置。我在这方面没有成功 这就是我所尝试的: ~/.Rprofile -当我运行绘图(某物)时 我的另一个想法是这样做: ~/.Rprofile
par (bg = "black")
par (fg = "ivory1")
我希望默认设置这些选项。但是,我们不能简单地在.Rprofile
中写入这些行,因为据我所知,在执行图形设备时,图形设备尚未初始化。相反,正如中所建议的,应该重新分配options()$device
,以包括必要的选项设置。我在这方面没有成功
这就是我所尝试的:
~/.Rprofile
-当我运行绘图(某物)
时
我的另一个想法是这样做:
~/.Rprofile
我没有主意了。你能帮我解决这个问题吗?一个解决方案似乎是定义一个“钩子”,在创建新绘图时调用它。从
plot.new的文档中:
有两个钩子称为“before.plot.new”和“plot.new”(请参阅
“setHook”)在帧前进前后立即调用。
后者在测试代码中用于注释新页面。这个
调用钩子函数时不带参数。(如果该值为
从“图形”中调用字符串“get”
名称空间。)
以下似乎有效:
setHook("before.plot.new", function(...) {
par(bg = "black",
fg = "ivory1",
col.axis = "ivory1",
col.lab = "ivory1",
col.main = "ivory1",
col.sub = "ivory1")
})
这里的问题是,在处理.r配置文件时,设备
选项尚未设置。
因此,options()
.First()
函数也会在附加来自选项(“defaultPackages”)
的包之前执行,因此会出现相同的错误
如果要将某些内容放入.Rprofile
,则必须如下所示:
setHook(
packageEvent("grDevices", "onLoad"),
function(...) {
f_device <- getOption("device")
blackdevice <- function(...) {
f_device(...)
par(bg = "black")
par(fg = "ivory1")
}
options(device = blackdevice)
}
)
setHook(
packageEvent(“GR设备”、“空载”),
函数(…){
f_device您选择调用par
6次而不是一次调用所有参数有什么特别的原因吗?@r2evans不,不是真的,我从问题中复制了前两次;后来添加了其他两次以获得正确的轴和标签。现在已修复。谢谢
.First <- function () {
options(f_device = options()$device)
blackdevice <- function (...) {
options()$f_device(...)
par (bg = "black")
par (fg = "ivory1")
}
options (device = blackdevice)
}
Error in (function (...) : attempt to apply non-function
setHook("before.plot.new", function(...) {
par(bg = "black",
fg = "ivory1",
col.axis = "ivory1",
col.lab = "ivory1",
col.main = "ivory1",
col.sub = "ivory1")
})
setHook(
packageEvent("grDevices", "onLoad"),
function(...) {
f_device <- getOption("device")
blackdevice <- function(...) {
f_device(...)
par(bg = "black")
par(fg = "ivory1")
}
options(device = blackdevice)
}
)