我有12个变量, M1,M2,...,M12 ,为此我计算了某个统计量 x
df = data.frame(model = factor(paste("M", 1:28, sep = ""), levels=paste("M", 1:28, sep = "")), x = runif(28, 1, 1.05))
levels = seq(0.8, 1.2, 0.05)
我想将这些数据绘制如下:
每个圆圈(轮廓)代表该统计数据的级别 “x” 。三条蓝线仅代表三种不同的场景。
此示例中包含的数据框表示一个方案。对于该特定情况,蓝线只会将 M1 的所有模型的值加入 M28 。
我尝试了以下内容:
ggplot(data=df, aes(x=model, y=x, group=1)) +
geom_line() + coord_polar() +
scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())
然而,我得到一条断开的路径(在M28和M1之间)
然后,我复制了第一行并将其放在数据框的底部(见下文),然后使用geom_path()
代替geom_line()
,但我没有得到结果我是寻找:
## Replicating the first row (model1) and placing it at end of dataframe
df = rbind(df, df[1,])
## using geom_path()
ggplot(data=df, aes(x=model, y=lg, group=1)) +
geom_path() + coord_polar() +
scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())
请问我能帮助我达到我想要的结果吗?任何帮助,将不胜感激。谢谢!
答案 0 :(得分:7)
您必须使用geom_polygon
作为已关闭的路径:
library(ggplot2)
ggplot(data=df, aes(x=model, y=x, group=1)) +
geom_polygon(fill = NA, colour = "black") +
coord_polar() +
scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
theme(axis.text.y = element_blank(), axis.ticks = element_blank(),
axis.title.x = element_blank(), axis.title.y = element_blank())