【发布时间】:2011-10-30 19:49:34
【问题描述】:
我需要创建一个方位角/距离颜色编码图,如使用“形状”包的后续代码。
library(shape)
emptyplot(xlim=c(-5,10), main="color segment test case")
filledcircle(r1=1, r2=2, from=0, to=pi/6, col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.0,.0))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=1, r2=2, from=pi/6, to=2*pi/6, col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.1,.1))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=1, r2=2, from=2*pi/6, to=3*pi/6, col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.2,.2))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=1, r2=2, from=3*pi/6, to=4*pi/6, col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.3,.3))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=1, r2=2, from=4*pi/6, to=5*pi/6, col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.4,.4))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=1, r2=2, from=5*pi/6, to=6*pi/6, col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.5,.5))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=2, r2=3, from=0, to=pi/6,col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.6,.6))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=2, r2=3, from=pi/6, to=2*pi/6,col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.7,.7))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=2, r2=3, from=2*pi/6, to=3*pi/6,col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.8,.8))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=2, r2=3, from=3*pi/6, to=4*pi/6,col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.9,.9))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=2, r2=3, from=4*pi/6, to=5*pi/6,col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.99,.99))), zlim=c(0,1), mid=c(0.0,0.0))
filledcircle(r1=2, r2=3, from=5*pi/6, to=6*pi/6,col=intpalette(c("blue", "yellow","red"), numcol = 100),
val=(cbind(c(0,1),c(.8,.8))), zlim=c(0,1), mid=c(0.0,0.0))
segments(0,0,3,0)
segments(0,0,2.6,1.5)
segments(0,0,1.5,2.6)
segments(0,0,0,3)
segments(0,0,-1.5,2.6)
segments(0,0,-2.6,1.5)
segments(0,0,-3,0)
plotcircle(r=1, from=0, to=pi, lwd=1)
plotcircle(r=2, from=0, to=pi, lwd=1)
plotcircle(r=3, from=0, to=pi, lwd=1)
这个绘图的真实世界示例需要大约十个或更多半径,并且可能需要绘图的另一半,甚至可能需要更精细的方位角范围。这将需要几十行代码。
此图类似于风玫瑰图,并且各种 R 包(一个是 climatol)执行类似的操作,但与此图完全不同。我查看了 CircStats、circle、NeatMap、ggplot2 和 climatol,但似乎没有任何内容符合要求。
有没有人知道另一个 R 包可以通过提供数据框或数字矩阵和调色板定义来创建这种绘图?
【问题讨论】:
标签: r