[英]Set default graphical parameters for device
我經常喜歡在IDE中使用深色背景colortheme上的淺色文本。 當我在R中繪制某些內容時,繪圖的默認顏色方案是白色背景上的黑色文本/邊框/點。 我試圖默認更改此項,最好是默認情況下從R調用的特定設備( X11cairo
, RStudioGD
),同時保持“輸出”設備(如pdf
和png
)的正常默認值。
我的問題有兩個:(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.