或許你可以先畫不分配半圓,使用默認打印功能。然後填寫沒有圈子的分佈:
library(circular)
data<- c(-0.188,-0.742,-0.953,-0.948,-0.953,-1.187,-0.9327200,-0.855,- 0.024,1.303,-1.041,-1.068,-1.066,1.442,1.150,0.965,0.665,0.649,0.984,-1.379,-0.584,-0.573,-0.357,-0.237,-0.287,-0.486,-0.783,-0.298,0.849,1.088,-1.003,-0.952,-0.776,-0.811,-0.880)
freq <- diff(colSums(outer(data %% (2*pi), (1:24)*pi/12,"<")))/length(data)
r.max <- sqrt(max(freq))
#-----------------------------------------------------------------
# Plot the half circle:
lab.width <- 0.15*r.max
lab.height <- 0.15*r.max
plot(c(-r.max,r.max), c(0,0),
axes=FALSE,
ylim=c(0,r.max+lab.height),
xlim=c(-r.max-lab.width,r.max+lab.width),
xlab="", ylab="", type="l")
for (i in 0:(5*12-1))
{
psi <- i*pi/(5*12)
x1 <- r.max*cos(psi)
y1 <- r.max*sin(psi)
x2 <- r.max*cos(psi+pi/(5*12))
y2 <- r.max*sin(psi+pi/(5*12))
lines(c(x1,x2), c(y1,y2), type="l")
if (i %% 5 == 0) { lines(x1*c(1,0.95), y1*c(1,0.95), type="l") }
}
par(cex=2.0)
text(x = c(-r.max,0,r.max),
y = c(0,r.max,0),
labels = c("-pi/2","0","pi/2"),
pos = c(2,3,4))
#------------------------------------------------------------
# Plot the distribution, but without the circle:
rose.diag(data,
bins = 24,
rotation = "clock",
tcl.text = NA,
ticks = FALSE,
zero = pi/2,
control.circle = circle.control(col="white"),
add = TRUE)
。 ![enter image description here](https://i.stack.imgur.com/5B77p.png)
爲什麼不輸入數據以便人們可以更好地幫助您? – lawyeR
感謝您的回答。我已編輯帖子以添加數據樣本。 – michltm
好。我編輯了你的問題並添加了另一個標籤,希望能夠吸引一兩個答案。 – lawyeR