gpt4 book ai didi

r - 如何更改 R 中子图/插图的背景颜色?

转载 作者:行者123 更新时间:2023-12-02 00:08:07 29 4
gpt4 key购买 nike

我想在 R 中的现有绘图中添加子图。子图(插图)应具有不同的背景颜色。我尝试了以下方法:

#install.packages("TeachingDemos", dependencies=T)
library(package="TeachingDemos")

d0 <- data.frame(x = rnorm(150, sd=5), y = rnorm(150, sd=5))
d0_inset <- data.frame(x = rnorm(1500, sd=5), y = rnorm(1500, sd=5))

plot(d0)
subplot(
fun = plot(
d0_inset
, col = 2
, pch = '.'
, mgp = c(1,0.4,0)
, ann = F
, cex.axis=0.5
)
, x = grconvertX(c(0.75,1), from='npc')
, y = grconvertY(c(0,0.25), from='npc')
, type = 'fig'
, pars = list(
mar = c(1.5,1.5,0,0) + 0.1
, bg = "blue" # this should change the background color
)
)

subplot() 的帮助下,它为 pars 说:

a list of parameters to be passed to par before running fun.

似乎很难更改绘图的背景颜色,因为图形参数在 plot() 中具有不同的含义。因此必须使用 par() 设置背景颜色。但为什么这对 subplot 不起作用? (我还尝试将绘图函数放入调用 par()plot() 的外部函数中,但这没有帮助)。

为什么子图不能正常工作?

最佳答案

parbg 参数改变了设备的背景颜色,而不是绘图的背景颜色。由于您只是将绘图添加到已经打开和使用的设备,因此这是不可能的(因为绘制 base 绘图的笔和纸方式)。相反,你可以做的(建立在 this previous answer 上)如下:

plot(d0)
subplot(fun = {plot(d0_inset, mgp = c(1,0.4,0), ann = F, cex.axis=0.5);
rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "blue");
points(d0_inset, col=2, pch=".") },
x = grconvertX(c(0.75,1), from='npc'),
y = grconvertY(c(0,0.25), from='npc'),
pars = list(mar = c(1.5,1.5,0,0) + 0.1), type="fig")

编辑:如果您希望还包含注释的区域为蓝色,我看到的另一种解决方案是在绘制子图之前绘制矩形(使用您提供给子图的坐标功能):

plot(d0)
rect(grconvertX(0.75, from='npc'), grconvertY(0, from='npc'),
grconvertX(1, from='npc'), grconvertY(0.25, from='npc'),
col="blue", border=NA)
subplot(fun = plot(d0_inset, mgp = c(1,0.4,0), ann = F,
cex.axis=0.5,col=2, pch=".") ,
x = grconvertX(c(0.75,1), from='npc'),
y = grconvertY(c(0,0.25), from='npc'),
pars = list(mar = c(1.5,1.5,0,0) + 0.1), type="fig")

关于r - 如何更改 R 中子图/插图的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17105177/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com