【问题标题】:Set default graphical parameters for device设置设备的默认图形参数
【发布时间】:2012-11-08 13:48:27
【问题描述】:

我经常喜欢在 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 的默认设备的绘图窗口时默认使用此“颜色方案”。

【问题讨论】:

  • 这不能回答你的问题,但我的解决方案是在我的.Rprofile 中有一个setnicepar 函数。
  • 每次绘图时只需将冗长的par 代码减少为setnicepar()
  • 是的,我的setnicepar 可以用参数调用。例如,setnicepar(mfrow=c(2,2))

标签: r graphics


【解决方案1】:

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

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

您也可以使用setHook 设置一个钩子函数以在绘图时运行,但检查哪个设备是当前的可能比它值得做的工作更多。如果在绘图设备启动时可以使用挂钩,那可能是更好的选择。

【讨论】:

    【解决方案2】:

    至少我自己为 RStudio 设备想出了一个答案,但它有点混乱。我可以只覆盖.Rprofile 中的设备功能以在打开后更改par 设置:

    RStudioGD <- function()
    {
      .Call("rs_createGD")
      graphics:::par(
           bg = "black",
           col = "white",
           col.axis = "white",
           col.lab = "white",
           col.main = "white",
           col.sub = "white")
    }
    

    这似乎不是最合适的方法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      相关资源
      最近更新 更多