【发布时间】:2012-08-13 04:24:56
【问题描述】:
我正在使用 gnuplot “splot” 函数绘制 3d 曲面。数据以 (x,y,z) 格式写入文本文件的 3 列中。当我从文件中绘制数据时, splot 连接数据的端点。表面本身是正确的,但在表面底部还有一组额外的不需要的平行线(形成 xy 平面)。因此,对于每个 x,它都绘制了一个对称衰减为零的函数,但是 +\infty 和 -\infty 也连接在一起!这使得图表下方出现了一个不需要的 x 轴。
我试图将边界设置为零,玩数据格式等。没有运气!
【问题讨论】:
-
您确定数据集的开头或结尾没有多余的点吗?我以前也遇到过类似的效果。如果不是这种情况,您能否发布一个重现效果的数据/代码的最小示例?另外,您使用的是哪个版本的 gnuplot/平台
-
您似乎想要绘制一个曲面。你的数据是用 gnuplot 的
griddata格式写的吗?如果你set dgrid3d会发生什么?表面(大约)是否正确? -
@mgilson。是的,我正在绘制一个曲面。正如我所提到的,数据采用 (x,y,z) 格式,x-y-z 之间有空格;每个三倍在一行中。但是所有这些三元组都是一个接一个。我没有在“块”之间放置一个空行。我不确定是不是因为这个。是的,当我尝试“设置 dgrid3d”时,表面是正确的,但太粗糙了。
-
顺便说一句,我已经从 matlab 导出数据。如果您有一种经过验证的方法可以从适合 gnuplot 的 matlab 导出 3d 数据,我会提出建议。在 2d 中,我使用“dmwrite”创建对 (x,y) 没有问题。
-
@andyras。我正在使用 4.4 版本的补丁级别 2。数据文件很好(除了,也许,正如我上面提到的,数据块之间没有空行)。不幸的是,gnuplot 手册写得不好。几乎没有例子,很多术语没有定义。我只有一个 (x,y,z) 的 MNP 矩阵,并希望软件在每个坐标中放置一个点。不知道为什么这么难!
标签: gnuplot