创建一个类似于极坐标图的样式的部分圆弧图?

时间:2016-06-13 15:51:51

标签: r polar-coordinates radar-chart

我想在R中创建一个只显示部分圆弧而不是整圆的极坐标/雷达样式图。

我已经查看了Plotrix和Pracma软件包,但我只能创建一个完整的圆形极坐标图,就像我在这里显示的那样(创建这是Pracma)

Radar Plot - full circle

我想要做的是在极坐标圆弧图的0到270度范围内创建1/4圆弧,然后绘制从中心向外边缘辐射的数据点,以指示相对流行度。随着接近外环,数据将显示越来越低的受欢迎程度/采用率。

1 个答案:

答案 0 :(得分:1)

更新答案

我们在基础图形中从头开始创建极坐标图布局:

mySet.add(new Double(12.5));

enter image description here

原始答案

使用ggplot2:

## Fake data
set.seed(493)
dat = data.frame(theta=runif(20, 3*pi/2, 2*pi), r=sample(1:10, 20, replace=TRUE))

# Calculate x and y values from r and theta
dat$x = dat$r * cos(dat$theta)
dat$y = dat$r * sin(dat$theta)

## 1:1 aspect ratio for plot
par(pty="s")

## Create plot layout
plot(NA,NA, 
     xlim=c(0, ceiling(max(c(dat$x,dat$y)))), 
     ylim=c(-ceiling(max(c(dat$x,dat$y))),0),
     frame.plot=FALSE,
     xaxt="n", yaxt="n", xlab="", ylab="")

## Add axes
axis(3, pos=0, at=seq(0,10,1))
axis(2, pos=0, at=seq(-10,0,1), las=1, labels=c(10:0))

## Add grid lines
angle = seq(0, -pi/2, length.out=100)
invisible(lapply(1:10, function(r) {
  lines(r*cos(angle), r*sin(angle), lwd=0.5, col="grey40", lty="12")
}))

## Add data
invisible(lapply(1:nrow(dat), function(i) {
  lines(c(0,dat$x[i]), c(0,dat$y[i]), col="blue")
}))

enter image description here