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

Gnuplot: Polar plot showing variable ranges

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

[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 程序,为我提供了极坐标点云,我用点绘制了这些点,但我真的更喜欢一种带有填充区域的矢量图,因为这意味着(大大)降低文件大小,并允许缩放...

任何帮助将不胜感激,提前致谢,
Andreas

有纯粹的 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 代码。