1

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

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

任何帮助将不胜感激,在此先感谢,
安德烈亚斯

4

1 回答 1

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<...

我建议将 0 范围的情况与set arrow from 0,0 to r*cos(angle),r*sin(angle).

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

于 2016-03-23T14:29:21.113 回答