gpt4 book ai didi

r - 使用布局向 R 图添加注释

转载 作者:行者123 更新时间:2023-12-01 10:30:21 25 4
gpt4 key购买 nike

我正在 R 中绘制多个可变大小的面板,并使用布局来完成此操作。然而,我想在绘图之间添加箭头和文本,但在我使用 arrowtext 函数的最佳尝试中,似乎注释被切断我正在绘制的轴的末端。

MWE:

circle <- function(){
theta <- seq(from = 0, to = 2*pi - pi/1000, by = 2*pi/1000)
x <- cos(theta)
y <- sin(theta)
circ <- list(x, y)
}

shape_plot <- function(xs, ys, typ){
plot(xs, ys, type=typ, axes=FALSE, xlab='', ylab='', asp=1, lwd=4)
}

sample1 <- function(data, n){
pts <- sort(floor(runif(n, min=1, max=1000)))
xs <- data[[1]]
x <- xs[pts] + .1*runif(n, min=-1, max=1)
x <- c(x, x[1])
ys <- data[[2]]
y <- ys[pts] + .1*runif(n, min=-1, max=1)
y <- c(y, y[1])
samp <- list(x, y)
}

layout(matrix(c(1,2, 1,3, 1,4), 3, 2, byrow = TRUE))

circ <- circle()
shape_plot(circ[[1]], circ[[2]], 'l')
label <- rep('circle', 3)
for (i in 1:3){
samp <- sample1(circ, 50)
shape_plot(samp[[1]], samp[[2]], 'p')
}

这将返回下图:

circle_example

我想要的是这样的东西(但不那么丑,而且不是在 GIMP 中创建的):

circle_example_with_drawing

谢谢!

最佳答案

为了回应@rawr 的评论,我想出了以下修改,使我能够实现这个目标:

...
layout(matrix(c(1,2, 1,3, 1,4), 3, 2, byrow = TRUE))
par(xpd=NA)
...

...
arrows(x0=1.5, x1=2.5, y0=1, y1=2, length=0.1, lwd = lweight)
arrows(x0=1.5, x1=2.5, y0=0, y1=0, length=0.1, lwd = lweight)
arrows(x0=1.5, x1=2.5, y0=-1, y1=-2, length=0.1, lwd = lweight)
text(x=1.8, y=1.8, expression('s'[1]^'a'), cex=2)
text(x=1.8, y=0.3, expression('s'[2]^'a'), cex=2)
text(x=1.8, y=-1.8, expression('s'[3]^'a'), cex=2)
...

结果:

annotated figure

关于r - 使用布局向 R 图添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41645484/

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