我正在尝试在有圆圈覆盖的绘图上绘制线条,将圆圈分为12个部分。该图具有指向特定点的箭头。我有一个情节和一个圆圈,但不知道如何获得线条。这是我尝试过的:
library(MASS)
eqscplot(basic.df$Valence, basic.df$Activation, xlim=c(-2,2), ylim=c(-2,2), xlab = "Valence", ylab = "Activation", main = "Affective Content of Pseuke d'Zimra (Basic ANEW)", axes=FALSE, frame.plot = FALSE)
axis(1, pos=0)
axis(2, pos=0)
arrows(0,0,x1=basic.df$Valence, y1 = basic.df$Activation)
symbols(0,0,2, add = TRUE, inches = FALSE, asp = 1)
circumplex.angles <- c(30, 60, 120, 150, 210, 240, 300, 330)
for (i in 1:8) {
i == 1
abline(a=0, b=tan(circumplex.angles[i]))
}
如果您想完全复制我正在做的事情,请提供绘图代码。 (basic.df $ Valence在0和2之间具有35个值,而basic.df $ Activation在0和-2之间具有35个相关值)。
但是,关键代码是for循环。我正在以看似随意的角度获得线条。 (我想给你看一张图片,但是我无法连接到服务器以便我的网站上传图片。如果连接成功,将进行编辑。)
谢谢。
答案 0 :(得分:1)
角度以弧度为单位。您可以使用
abline(a=0, b=tan(circumplex.angles[i]*pi/180))
pi是R中的内置常量
答案 1 :(得分:1)
这是一个更通用的解决方案和一个示例图像。
angles <- c(0, 45, 90, 180, 270) # in degrees
x0 <- 4
y0 <- 4
lineLength <- 2
plot(x0, y0, xlim=c(1, 8), ylim=c(1, 8), pch=15, cex=3)
for (i in 1:length(angles)) {
x1 <- x0 + lineLength * cos(angles[i] * pi / 180)
y1 <- y0 + lineLength * sin(angles[i] * pi / 180)
segments(x0, y0, x1, y1, lwd=i)
x1 <- x0 + (lineLength * 1.3) * cos(angles[i] * pi / 180)
y1 <- y0 + (lineLength * 1.3) * sin(angles[i] * pi / 180)
text(x1, y1, labels=angles[i])
}
答案 2 :(得分:0)
这正是我想要做的工作:
for (i in 1:8) {
i == 1
segments(0,0, x1 = 2*cos(circumplex.angles[i]*pi/180),
y1 = 2*sin(circumplex.angles[i]*pi/180))
}