如何用gnuplot创建一个3d极坐标图

时间:2013-04-22 20:26:27

标签: graph 3d gnuplot polar-coordinates

我正在调查麦克风的频率响应。

为了帮助分析它们,我编写了一个程序,它将输出:到达角度,频率(Hz)和给定角度和频率(dB)的响应。

我编写了一个gnuplot脚本,将所有这些数据绘制成一个三维图形: gnuplot graph

gnuplot的代码是:

set xlabel "Arrival Angle (degrees)" font "arial,8"
set ylabel "Frequency (Hz)" font "arial,8"
set zlabel "Gain (dB)" font "arial,8"

set grid lc rgbcolor "#BBBBBB"

set xrange[-180:180]
set yrange[0:20000]
set zrange[-60:0]

unset key
set view 30,56,0.98

splot 'freq.dat' u 1:2:3 with pm3d

我知道这有点不寻常,但我想做的是,在一个三维极坐标图上表示这一点,但我无法弄清楚如何去做。下面的(糟糕)绘图显示了我一直试图实现的那种东西: the eventual aim

有人能指出我正确的方向吗?

提前致谢。 戴夫。

<小时/> 2013年4月26日更新

我一直在玩,并创建了一个更新的脚本:

reset
set title "3D version using cylindrical coordinate system"
set ticslevel 0.0
set view 30,56,0.98
set angles degrees
set mapping cylindrical
set parametric
set zrange[-60:0]
unset key
splot 'freqResp.dat' u 1:3:2 with pm3d

这个脚本几乎做了我需要的东西,但不幸的是它只渲染图的后半部分。前半部分仍未开槽。例如: corrupt graph

如果有人想用上面的脚本玩弄,我已经把'freqResp.dat'文件设为here

当我使用原始脚本绘制相同的文件时,我得到下面的图像(因此所有数据都存在于freqResp.dat文件中): all data is present

有人可以帮助我让gnuplot渲染图的前半部分吗? 谢谢戴夫。

1 个答案:

答案 0 :(得分:4)

在多位用户的帮助下,最终答案是:

reset
set title "3D version using cylindrical coordinate system"
set ticslevel 0.0
set view 30,56,0.98
set angles degrees
set mapping cylindrical
set parametric
set zrange[-60:0]
unset key
set pm3d depthorder 
splot 'freqResp.dat' u 1:3:2 with pm3d

感谢所有帮助过的人