分享

科学网—谈谈gnuplot(二十五):简单 3D 函数绘图

 大老渊 2013-07-17

谈谈gnuplot(二十五):简单 3D 函数绘图

已有 1999 次阅读 2011-11-29 09:00 |个人分类:开源软件|系统分类:科研笔记|关键词:gnuplot 数学 画图 软件 3D 立体 splot isosamples xyplane hidden3d pm3d view

终于谈到 3D 绘图了。大多数情况下普通 3D 曲面绘图并不是一个好的选择,因为投影会使这样的绘图很难表达定量关系,通常只能定性的显示一下函数或者数据趋势。这种情况下,往往需要其他图像的配合才能展示定量的关系。我们从简单的函数图像入手,介绍一下 gnuplot 的 3D 绘图功能。

在 3D 情况下,gnuplot 的绘图命令是 splot
gnuplot> f(x,y)=sin(sqrt(x*x+y*y))/sqrt(x*x+y*y)
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> set zlabel "Z"
gnuplot> unset key
gnuplot> splot f(x,y)


显然,默认的网格有点过大,无法显示函数细节。这个网格大小可以通过 isosamples 参数来调节。另外,底部平面似乎离曲面太远了,留了很大一段空白,我们想把这个空白缩小一些。底部平面的位置由 xyplane 参数来控制,可以用:
set xyplane at <z坐标>
来设定底部平面的绝对位置,也可以用:
set xyplane <相对比例>
来设定空白部分相对于 zrange 的比例。
下面是例子:
gnuplot> set isosamples 50
gnuplot> set xyplane 0.2
gnuplot> replot


由于网格是透明的,因此网格重叠部分显得比较混乱。为了更清楚的显示函数图像,我们让后面被遮挡的部分隐藏起来:
gnuplot> set hidden3d
gnuplot> replot


除了用网格表示曲面,我们还可以用色彩来表示不同的 z 值,gnuplot 把这种表示方式叫做 pm3d(palette-mapped 3d):
gnuplot> set pm3d
gnuplot> replot


最后,既然是 3D 图像,就要涉及视角问题。gnuplot 里的 3D 视角用 set view 命令控制,默认视角是 60, 30,分别表示绕 x 轴和 z 轴的旋转角度。另外,一些 terminal 例如 wxt,支持直接用鼠标拖动图像改变视角。
gnuplot> set view 45,20
gnuplot> replot

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多