4

使用library(plotrix) (p.135-8) 中的radial.plot 函数并参考CrossValidated中的有用帖子,我制作了这个蜘蛛网图

在此处输入图像描述

问题

该图显示每个项目的治疗组和对照组之间的平均值差异。然而,我对积极变化特别感兴趣。因此,我想强调 >= 0 的值。为此,我力求

  • 将 0 值的圆线涂成黑色

  • 使值 <= 0 的区域,即在 0 圆内,更透明(“更轻”)。

我很高兴分享我用来制作蜘蛛网图的代码:

items.M<-c(-0.15,0.05,0.12,-0.12,-0.02,0.27,0.53,0,-0.33,0.19,0.34)
items.J<-c(-0.09,0.08,1.63,-0.1,-0.1,-0.09,0.15,0.05,-0.12,0.51,0.02)
items.names<-c("item 1", "item 2", "item 3", "item 4", "item 5", "item 6", "item 7", "item 8", "item n1", "item n2", "item n3")


spider.data<- rbind(items.M, items.J)


library(plotrix)
radial.plot(spider.data,
  labels=items.names,
  rp.type="p",
  radial.lim=c(-0.4,1.7),
  poly.col=c(rgb(255/255, 215/255, 0, .8), rgb(0, 0, 1, .8)),
  line.col=c("black", "black"),
  lwd=1)

非常感谢您的帮助。

4

1 回答 1

3

为了透明度,您可以使用包的alpha图形参数设置grid。首先,我使用gridBasegridgraphics.

你会得到这样的东西:

在此处输入图像描述

library(gridBase)
vps <- baseViewports()
vp <- vps$plot
vp$gp <-gpar(alpha=0.3)   # you can play with alpha here
pushViewport(vp)
grid.circle(r=unit(vp$xscale/6,'native'),    # /6 to get the small circle
         gp=gpar(fill='white',col='black'))
upViewport()
pushViewport(vps$plot)
grid.circle(r=unit(vp$xscale/6,'native'),
        gp=gpar(fill='NA',col='black',lwd=2))  ## line width = 2 to show the black line effect
upViewport()
于 2013-01-11T10:48:08.033 回答