使用 ggplot2 生成雷达图

Generate radar charts with ggplot2

为了便于再现,you can download here数据。它的结构是:

> str(data)
'data.frame':   30 obs. of  4 variables:
 $ Count: num  -15.26 NaN NaN -7.17 -49.37 ...
 $ X1   : Factor w/ 1 level "Mean": 1 1 1 1 1 1 1 1 1 1 ...
 $ X2   : Factor w/ 10 levels "DC1","DC10","DC2",..: 1 1 1 3 3 3 4 4 4 5 ...
 $ X3   : Factor w/ 3 levels "SAPvsSH","SAPvsTD6",..: 1 2 3 1 2 3 1 2 3 1 ...

我运行这个ggplot图表:

ggplot(data=data,  aes(x=X2, y=Count, group=X3, colour=X3)) + 
  geom_point(size=5) + 
  geom_line() + 
  xlab("Decils") + 
  ylab("% difference in nº Pk") + 
  ylim(-50,25) + ggtitle("CL")  + 
  geom_hline(aes(yintercept=0), lwd=1, lty=2) + 
  scale_x_discrete(limits=c(orden_deciles))

结果如下:

此图表表示 SH 和 TD6 在 SAP 方面的差异百分比(这是水平黑线,分别为红色和绿色),以及 TD6 在 SH 方面(在这种情况下也由水平黑线,但现在是蓝色)。我使用了十个变量:DC1:DC10.

我想把这张图改成雷达图。我尝试使用 ggradarggRadar,但没有成功。像这样的东西会很棒:

水平黑线应该是完美的圆形,就像上图中红蓝线之间的圆圈。理想情况下,DC1 应该朝北,顺时针方向。

有什么想法或建议吗?

感谢@DJack,我post这里的结果添加+ coord_polar():

这是最终代码:

ggplot(data=data,  aes(x=X2, y=Count, group=X3, colour=X3)) + 
  geom_point(size=5) + 
  geom_line() + 
  xlab("Decils") + 
  ylab("% difference in nº Pk") + 
  ylim(-50,25) + ggtitle("CL")  + 
  geom_hline(aes(yintercept=0), lwd=1, lty=2) + 
  scale_x_discrete(limits=c(orden_deciles)) +
  coord_polar()