Gnuplot:显示可变范围的极坐标图

时间:2016-03-21 16:09:43

标签: gnuplot polar-coordinates data-files

我有一个角度范围的数据集,我想将其表示为极坐标图。 格式如下:

[Radius]\t[Range 1 lower] [Range 1 upper]\t[Range 2 lower] [Range 2 upper]...

典型的数据行如下所示:

1.181   0 0 31.8196 38.3883 141.612 148.18  180 180 211.82 218.388  321.612 328.18

每行的范围数可以不同,也有不带任何范围的行。理想情况下,我想得到一个极坐标图,其中在给定半径处,每个范围的下限和上限之间的角度被填充,而其余的图是空的。

范围不重叠,但是其中一些具有与下限和上限相同的角度(例如上面示例中的“0 0”范围),应该仍然可见,如同(一如既往)那些单一计算中的点和几乎不可见的细节证明是在实验中观察到的......

现在我已经改变了输出所述范围的C程序给我一个带有极坐标的点云,我用点绘制,但我真的更喜欢带有填充区域的矢量图,如这意味着(很多)文件大小较小,并允许缩放......

任何帮助将不胜感激,提前谢谢,安德烈亚斯

1 个答案:

答案 0 :(得分:0)

纯粹的gnuplot 4.4+解决方案,但它们将是错综复杂的。一个原因是数据文件的极坐标绘制不是通过极坐标插值完成的,而是通过线性插值(端点之间的直线)完成的。我宁愿让C程序输出gnuplot命令直接绘制数据,例如

set polar
set angles degrees
plot (t<38.3883&t>31.8196)?1.181:1/0 with filledcurves above r=0, \
     (t<...

我建议用set arrow from 0,0 to r*cos(angle),r*sin(angle)分别处理0范围案例。

我不确定文件会小得多,gnuplot会生成一条折线来近似r=1.181处的圆弧。如果你想要一个实际圆弧的小文件,你可能想直接从你的C代码生成svg代码。