在不使用ggplot2
或其他绘图库的情况下,我需要围绕多边形/星图顶点绘制圆圈,即每个半径等于各自多边形半径的圆。您可以在这里看到一个例子:
d1 <- 1:4
names(d1) <- LETTERS[1:4]
stars(matrix(d1,nrow=1),axes=TRUE, scale=FALSE,radius=TRUE, frame.plot=TRUE,labels = dimnames(d1)[[1]])
grid()[enter image description here][1]
我知道我应该将stars()
与symbols()
、polygon()
函数或par(...)
图形结合起来,但老实说,我对这种绘图技术很陌生,对如何将函数和参数组合在一起非常迷茫。
发布于 2021-12-16 13:12:31
我不知道在基R中有任何函数为你做圆圈,但是你可以手动地组合它们。
center <- c(x=2.1, y=2.1) # probably a better way
half <- seq(0, pi, length.out = 51)
for (D in d1) {
Xs <- D * cos(half); Ys <- D * sin(half)
lines(center["x"] + Xs, center["y"] + Ys, col = "gray", xpd = NA)
lines(center["x"] + Xs, center["y"] - Ys, col = "gray", xpd = NA)
}
备注:
accurately;
locator(1)
选择了这个点;由于不熟悉stars
,可能有一个更好的方法来通过编程和更多的lines(.)
绘制上半圆;第二个绘制下半圆。xpd=NA
是为了防止由于绘图边距造成的剪裁。在您的“真实”数据中,这可能是不必要的。有关这方面的更多细节,请参见?par
。stars(..., add=TRUE)
.绘制第一个半圆,然后按预期添加余数,然后运行plot(..., type="l")
https://stackoverflow.com/questions/70385103
复制