我有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())
请问有没有人能够帮我实现我想要的结果?非常感谢您的任何帮助!
(注:该文本包含HTML标签,请勿删除)
rbind
命令之前,我只是使用了df
的第一个版本。 - Sven Hohenstein