r - 设置设备默认图形参数

标签 r graphics

我经常喜欢在 IDE 中使用浅色文本和深色背景颜色主题。当我在 R 中绘制某些内容时,绘图的默认颜色方案是白色背景上的黑色文本/边框/点。我试图默认情况下更改此设置,最好是默认从 R 调用的特定设备(X11cairoRStudioGD),同时保留“输出”设备的正常默认值,例如pdfpng

我的问题有两个:(1) 如何设置默认图形参数? (2) 我可以只对特定设备执行此操作吗?

例如,我可以使用 par 轻松设置当前设备中的颜色方案:

par(
  bg = "black",
  col = "white",
  col.axis = "white",
  col.lab = "white",
  col.main = "white",
  col.sub = "white")

plot(1)

按预期创建黑底白图,并按预期将设备重置为默认值:

dev.off()
plot(1)

我尝试将以下内容放入我的 .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")

这有点起作用,除了它在启动时打开一个绘图窗口,这可能有点烦人,并且在 RStudio 中它不会打开 RStudio 设备,而是打开一个 x11 窗口。另外,如果我关闭该窗口,参数会再次重置。我希望每次使用 RStudio 的默认设备打开绘图窗口时都能默认使用此“颜色方案”。

最佳答案

图形参数在设备的生命周期内持续存在,这就是为什么当您关闭图形设备并开始新绘图时您会看到它们重置。

对于您想要做的事情,最好的方法可能是为您想要更改默认值的设备编写一个包装函数。此功能将启动感兴趣的设备并为您设置默认参数。然后,您可以使用 options(device=mygrdevice) 将函数设置为默认设备,其中 mygrdevice 是自定义函数。然后,如果没有打开设备并且您发出绘图命令,您的函数将运行,打开设备并设置默认值。但如果您打开不同的设备(例如 pdf 或 png),则常规默认值将就位。

您还可以使用 setHook 设置要在绘图时运行的 Hook 函数,但检查当前是哪个设备可能会做更多的工作而不是值得的。如果绘图设备启动时有一个钩子(Hook)可用,那可能是一个更好的选择。

关于r - 设置设备默认图形参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474137/

相关文章:

r - 大合并/内存管理

r - 将多列组合成整洁的数据

c++ - DirectX11 如何从 unsigned char * 数据创建 Texture2D

java - 如何渲染无间隙的逐像素绘图? Java Swing

r - 将 ddply 转换为 dplyr 和 tidyr 代码(变异、联合、传播)

r - 将一个数据框与另一个包含增长率的数据框相乘,但将其复合

python - pygame : Getting rid of strange gradient effect on displayed image

graphics - 成像问题: How to determine image quality?

java - jogl 列出所有图形设备

r - R中Zipf(频率与排名)图的命令是什么