使用R在圆圈中填充9个区域中的每个区域

时间:2014-11-18 08:03:52

标签: r plot

寻找一种方法来填充这个圆圈的每个不同部分,用于可视化视网膜不同部分的厚度。使用Excel中的数据,如果变量为1,则不同部分将突出显示(如果变量为empty则不会突出显示。)

library(plotrix)
plot(1,1,col="white",bty="n", xaxt="n", yaxt="n", xlab="1",ann=FALSE)
draw.circle(1,1,0.3)
draw.circle(1,1,.15)
draw.circle(1,1,.05)
arrows(0.77787,0.77787, 0.962644661,0.962644661,length=0)
arrows(1.037355339,1.037355339, 1.22213,1.22213, length=0)
arrows(0.77787,1.22213,0.962644661,1.037355339,length=0)
arrows(1.037355339,0.962644661,1.22213,0.77787,length=0)

enter image description here

1 个答案:

答案 0 :(得分:4)

您可以结合使用piedraw.circle

来执行此操作
library(plotrix)
library(RColorBrewer)

cols <- brewer.pal(9, 'Set3')

pie(rep(1, 4), col=cols[1:4], init.angle=45, radius=1, labels='')
par(new=TRUE)
pie(rep(1, 4), col=cols[5:8], init.angle=45, radius=0.5, labels='')
draw.circle(0, 0, 0.166, col=cols[9])

retina

根据需要设置col以填充(或不填写)各个部分,例如:

pie(rep(1, 4), col=c(0, 0, 'gray80', 0), init.angle=45, radius=1, labels='')
par(new=TRUE)
pie(rep(1, 4), col=rep(0, 4), init.angle=45, radius=0.5, labels='')
draw.circle(0, 0, 0.166, col='gray80')

retina2