我经常喜欢在IDE中使用深色背景colortheme上的浅色文本.当我在R中绘制某些内容时,绘图的默认颜色方案是白色背景上的黑色文本/边框/点.我试图默认更改此项,最好是默认情况下从R调用的特定设备(X11cairo
,RStudioGD
),同时保持"输出"设备的正常默认值,例如pdf
和png
.
我的问题有两个:(1)如何设置默认图形参数?(2)我可以仅针对特定设备执行此操作吗?
例如,我可以轻松地在当前设备中设置colorscheme par
:
par(
bg = "black",
col = "white",
col.axis = "white",
col.lab = "white",
col.main = "white",
col.sub = "white")
plot(1)
Run Code Online (Sandbox Code Playgroud)
按预期在黑色图上创建白色,并按预期重置设备返回默认值:
dev.off()
plot(1)
Run Code Online (Sandbox Code Playgroud)
我尝试将以下内容放入我的.Rprofile
:
graphics:::par(
bg = "black",
col = "white",
col.axis = "white",
col.lab = "white",
col.main = "white",
col.sub = "white")
graphics:::plot(1,type="n",xlab="",ylab="",axes=FALSE)
graphics:::text(1,1,"Plotting area")
Run Code Online (Sandbox Code Playgroud)
这在某种程度上有效,除了它在启动时打开一个绘图窗口,这可能是令人讨厌的,在RStudio中它不会打开RStudio设备而是打开一个x11
窗口.此外,如果我关闭该窗口,参数将再次重置.我希望每次打开一个绘图窗口时默认使用这个"colorscheme",例如RStudio的默认设备.
图形参数在设备的整个生命周期内持续存在,这就是为什么当您关闭图形设备并开始新绘图时您会看到它们重置的原因。
对于您想要做的事情,最好的方法可能是为您想要更改默认值的设备编写一个包装函数。此功能将启动感兴趣的设备并为您设置默认参数。然后,您可以使用自定义函数options(device=mygrdevice)
wheremygrdevice
将您的函数设置为默认设备。然后,如果没有打开设备并且您发出绘图命令,您的函数将运行,打开设备并设置默认值。但如果您打开不同的设备(例如 pdf 或 png),则常规默认值将就位。
您还可以setHook
设置一个在绘图时运行的挂钩函数,但检查当前的设备可能会比其价值更多的工作。如果绘图设备启动时有一个钩子可用,那可能是一个更好的选择。