1 r polygon coordinates radar-chart
我的目标是开发一个 R 脚本,该脚本返回构建内接在单位圆中的 n 边多边形所需的一组 (s, c) 坐标。
我正在关注Phillip Burger 关于如何在 Tableau 中创建雷达图的这篇文章。他的方法使用 R 来计算背景图像。可以在此处找到他返回构建 5 边多边形所需的 (s, c) 坐标集的代码。
以 Phillip Burger 的代码为基础,是否有人对如何修改他的代码以生成 n 边多边形坐标有任何建议?
我正在处理一个需要 n=3 和 n=10 组坐标的业务案例。
非常感谢,
皮耶罗
编辑:我所需的输出格式是包含列 pathID;pathOrder;xCoordinate;yCoordinate - 稍后在 Tableau 中绘制线条所必需的数据框。
这是 5 边多边形的示例输出
pathID;pathOrder;xCoordinate;yCoordinate
61;1;0;0
62;1;0;0
63;1;0;0
64;1;0;0
65;1;0;0
61;2;0;1,1
62;2;1,046162168;0,339918694
63;2;0,646563778;-0,889918694
64;2;-0,646563778;-0,889918694
65;2;-1,046162168;0,339918694
0;1;0;0
0.25;1;0;0,25
0.5;1;0;0,5
0.75;1;0;0,75
1;1;0;1
0;2;0;0
0.25;2;0,237764129;0,077254249
0.5;2;0,475528258;0,154508497
0.75;2;0,713292387;0,231762746
1;2;0,951056516;0,309016994
0;3;0;0
0.25;3;0,146946313;-0,202254249
0.5;3;0,293892626;-0,404508497
0.75;3;0,440838939;-0,606762746
1;3;0,587785252;-0,809016994
0;4;0;0
0.25;4;-0,146946313;-0,202254249
0.5;4;-0,293892626;-0,404508497
0.75;4;-0,440838939;-0,606762746
1;4;-0,587785252;-0,809016994
0;5;0;0
0.25;5;-0,237764129;0,077254249
0.5;5;-0,475528258;0,154508497
0.75;5;-0,713292387;0,231762746
1;5;-0,951056516;0,309016994
0;6;0;0
0.25;6;0;0,25
0.5;6;0;0,5
0.75;6;0;0,75
1;6;0;1
Run Code Online (Sandbox Code Playgroud)
这是我想修改的 R 代码片段
pathID;pathOrder;xCoordinate;yCoordinate
61;1;0;0
62;1;0;0
63;1;0;0
64;1;0;0
65;1;0;0
61;2;0;1,1
62;2;1,046162168;0,339918694
63;2;0,646563778;-0,889918694
64;2;-0,646563778;-0,889918694
65;2;-1,046162168;0,339918694
0;1;0;0
0.25;1;0;0,25
0.5;1;0;0,5
0.75;1;0;0,75
1;1;0;1
0;2;0;0
0.25;2;0,237764129;0,077254249
0.5;2;0,475528258;0,154508497
0.75;2;0,713292387;0,231762746
1;2;0,951056516;0,309016994
0;3;0;0
0.25;3;0,146946313;-0,202254249
0.5;3;0,293892626;-0,404508497
0.75;3;0,440838939;-0,606762746
1;3;0,587785252;-0,809016994
0;4;0;0
0.25;4;-0,146946313;-0,202254249
0.5;4;-0,293892626;-0,404508497
0.75;4;-0,440838939;-0,606762746
1;4;-0,587785252;-0,809016994
0;5;0;0
0.25;5;-0,237764129;0,077254249
0.5;5;-0,475528258;0,154508497
0.75;5;-0,713292387;0,231762746
1;5;-0,951056516;0,309016994
0;6;0;0
0.25;6;0;0,25
0.5;6;0;0,5
0.75;6;0;0,75
1;6;0;1
Run Code Online (Sandbox Code Playgroud)
此代码将绘制一个半径为 1 的 n 边多边形。
polyCoords<-function(n){
sq<-2*pi*(0:n)/n
cbind(sin(sq),cos(sq))
}
plot(polyCoords(10),type='l')
Run Code Online (Sandbox Code Playgroud)
请注意,它会重复第一个坐标,以便关闭绘图。如果您不想要这个,那么将 更改0:n为1:n。
