在R中绘制水平图

时间:2014-01-31 16:53:43

标签: r plot

我有12个变量, M1,M2,...,M12 ,为此我计算了某个统计量 x

 df = data.frame(model = paste("M", 1:28, sep = ""), x = runif(28, 1, 1.05))
 levels = seq(0.8, 1.2, 0.05)

我想将这些数据绘制如下:

enter image description here

每个圆圈(轮廓)代表该统计数据的级别 “x” 。三条蓝线仅代表三种不同的场景。 此示例中包含的数据框表示一个方案。对于该特定情况,蓝线只会将 M1 的所有模型的值加入 M28

R中是否有任何工具允许这样的情节?我尝试contour()来自library(MASS),但轮廓不是完美的圆圈。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

这是一个ggplot解决方案:

library(ggplot2)
ggplot(data=df, aes(x=model, y=x, group=1)) + 
  geom_line() + coord_polar() + 
  scale_y_continuous(limits=range(levels), breaks=levels, labels=levels)

enter image description here

请注意,由于数据框中的名称,这有点令人困惑。 x实际上是y变量,并对真实x进行建模,因此图表比例标签看起来很奇怪。

编辑:我必须在数据框中设置model的因子级别,以便按正确的顺序绘制。