我有一个角度范围的数据集,我想将其表示为极坐标图。 格式如下:
[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程序给我一个带有极坐标的点云,我用点绘制,但我真的更喜欢带有填充区域的矢量图,如这意味着(很多)文件大小较小,并允许缩放......
任何帮助将不胜感激,提前谢谢,安德烈亚斯
答案 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代码。