我有一个包含3列的数据文件:前2个是圆的坐标,3是结果。如何将此x-y坐标转换为度数范围(x轴的范围:0 - 360)。我想在XY图中显示结果。我不想在我的数据文件中创建更多列,我想直接使用gnuplot转换值。这可能吗?
答案 0 :(得分:2)
请记住您的高中几何以及如何将笛卡尔坐标转换为极坐标。假设您有一个笛卡尔坐标( x , y )。在此点和原点之间画一条线。此线与 x 轴之间的角度θ与tan θ = y / 相关x 和来自原点的距离 r 是sqrt( x 2 + y 2 )。
因此,您的角度θ只是 y / x 的反正切(反正切)。在gnuplot中,这是atan()
函数。我会写这样的东西:
set angles degrees
plot 'infile.dat' using (atan($2/$1)):3 with points
其中第3列是“结果”(粗糙度),第1列和第2列是笛卡尔坐标。它使用计算出的水平绘制轴的θ值和垂直绘制轴的粗糙度。
使用set angles
命令可以将atan()
使用的单位设置为度或弧度。由于您指定的范围为0-360,因此为set angles degrees
。
它将按照文件中显示的顺序绘制点。请注意,根据数据文件中点的顺序,此计算后的点的顺序可能不再是可视顺序的,因此本示例使用with points
。