gnuplot曲面图

时间:2016-03-18 00:29:03

标签: 3d border gnuplot

在尝试回答this question时,我意识到除了set border之外必须有一个我不知道的边框选项。

假设我们运行以下命令

set border 15
splot sin(x)

边框应绘制基础上的所有边界线,而不是其他边界线。但是,这会产生以下结果:

enter image description here

这里我们在侧面有额外的线条,从底面延伸到底面。尝试使用边框1,它应该只绘制左下方的前面,我们看到相同的。

enter image description here

这些被边框0消除

enter image description here

并且使用边框255(绘制基部和所有四个边),我们看到这些额外的线条不如延伸到表面边缘的实际边线那么长。

enter image description here

额外的线条仅延伸到表面,而边界线则一直延伸。这似乎只发生在表面上(并且出于某种原因与链接的问题有关),如绘制以下数据

1 2 3
3 4 5
6 7 8
9 0 1
2 3 4
5 6 7
8 9 0

set border 15
splot datafile w lines

产生以下

enter image description here

这些额外的行不会发生。

这让我怀疑控制这些额外线路有另一种选择,但我不知道它是什么。什么选项控制这些,以及如何关闭它?完全关闭边界会变得干旱,但这是不可取的。

同样看一下this question,在我看来,它会随时出现gnuplot从数据中插入一个曲面,但如果不能以某种方式关闭它,我会感到惊讶。

修改:一个与this question相关联的答案。问题不是重复,因为它处理数据文件,我正在使用表面函数,但它有助于找到一个可能的解决方案,我已经写了一个答案。

我仍然希望解决问题的可能性较小。

2 个答案:

答案 0 :(得分:1)

这似乎是这个问题的重复:Remove z axis in gnuplot,它建议添加一个可忽略的偏移来移除这些额外的轴。

答案 1 :(得分:0)

我有一个可能的解决方案,但我真的不喜欢它。

我们可以使用该函数生成数据文件或数据块,然后绘制它。 SébastienGuarnay在他的回答中联系到的question有助于确定如何做到这一点。

在gnuplot 5中,以下命令可以或多或少地实现此

set table $k
splot sin(x)
unset table
set border 15
set xrange[-10.1:10.1]
set yrange[-10.1:10.1]
splot $k with lines

这里我们使用表格输出来捕捉要绘制的点,然后将它们绘制成一个数据文件,根据链接的问题答案稍微扩展x和y范围(这是最终删除这些线条)。

这会产生

enter image description here

似乎有点迂回,但似乎达到了我想要的效果。