使用 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
.
我想把这张图改成雷达图。我尝试使用 ggradar
或 ggRadar
,但没有成功。像这样的东西会很棒:
水平黑线应该是完美的圆形,就像上图中红蓝线之间的圆圈。理想情况下,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()
为了便于再现,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
.
我想把这张图改成雷达图。我尝试使用 ggradar
或 ggRadar
,但没有成功。像这样的东西会很棒:
水平黑线应该是完美的圆形,就像上图中红蓝线之间的圆圈。理想情况下,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()