簡體   English   中英

設置設備的默認圖形參數

[英]Set default graphical parameters for device

我經常喜歡在IDE中使用深色背景colortheme上的淺色文本。 當我在R中繪制某些內容時,繪圖的默認顏色方案是白色背景上的黑色文本/邊框/點。 我試圖默認更改此項,最好是默認情況下從R調用的特定設備( X11cairoRStudioGD ),同時保持“輸出”設備(如pdfpng )的正常默認值。

我的問題有兩個:(1)如何設置默認圖形參數? (2)我可以僅針對特定設備執行此操作嗎?

例如,我可以輕松地使用par設置當前設備中的colorscheme:

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窗口。 此外,如果我關閉該窗口,參數將再次重置。 我希望每次打開一個繪圖窗口時默認使用這個“colorscheme”,例如RStudio的默認設備。

圖形參數持續使用設備的生命周期,這就是當您關閉圖形設備並開始新繪圖時看到它們重置的原因。

您想要做的最好的方法可能是為要更改默認值的設備編寫包裝函數。 此功能將啟動感興趣的設備並為您設置默認參數。 然后,您可以使用options(device=mygrdevice)將您的函數設置為默認設備,其中mygrdevice是自定義函數。 然后,如果沒有設備打開並且您發出繪圖命令,您的功能將運行,打開設備並設置默認值。 但是如果你打開一個不同的設備,如pdf或png,那么常規默認值就會到位。

您還可以使用setHook設置在繪圖時運行的鈎子函數,但檢查哪個設備是最新的可能比它的價值更多。 如果繪圖設備啟動時可以使用掛鈎,那么這可能是更好的選擇。

至少我為RStudio設備做了一個答案,但這有點亂。 我可以在.Rprofile覆蓋設備功能,在.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")
}

看來這不是最合適的方式嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM