gpt4 book ai didi

plot - gnuplot - 正确裁剪 3D 图 (splot)

转载 作者:行者123 更新时间:2023-11-30 23:58:10 26 4
gpt4 key购买 nike

免责声明:我是 Gnuplot 的新手,所以我可能遗漏了一些明显的东西......

对于我必须给出的演示,我正在尝试使用 Gnuplot 创建交互式版本的 this情节。

到目前为止,我已经想出了以下代码:

set hidden3d
set isosamples 40
set border 4095
set xrange [-1 : 5]
set yrange [-3 : 3]
set zrange [-10 : 10]
set xtics 2
set ytics 2
set ztics 2
f(x,y) = x**2 + y**2 * (1 - x)**3
splot f(x,y)
pause -1

然而,在绘图的边界处(具体来说,在相对于 z 轴的边界处)绘图以一种我觉得非常难看的方式被截断;见下文。我想要的基本上是绘制所有线条,就好像我的绘图范围是(例如)-50 : 50,但最后只有绘图与框的“交集” [-1:5] x [-3:3] x [-10:10] 实际上应该显示。现在似乎正在发生的事情是,任何“绘图段”在由 xrange-zrange 确定的框外至少有一个点根本不会被绘制。

(How) can I change this?

Resulting plot, showing the ugly clipping

最佳答案

来自 future 的回答,有点,所以这可能不算...

gnuplot 到 5.2 的版本不能完全按照您的要求进行。但是,只要您使用 pm3d 表面而不是 hidden3d 表面,开发版 5.3 就会默认执行此操作。这是当前开发代码呈现的情节:

set border 4095
unset colorbox
set view 56, 15, .75, 1.75
set samples 40, 40
set isosamples 40, 40
set xyplane 0
set grid x y z vertical
set pm3d depthorder border linewidth 0.100
set pm3d clip z
set pm3d lighting primary 0.8 specular 0.3 spec2 0.3

set xrange [-1 : 5]
set yrange [-3 : 3]
set zrange [-10 : 10]
set xtics 1 offset 0,-0.5
set ytics 1 offset 0,-0.5
set ztics 5

f(x,y) = x**2 + y**2 * (1 - x)**3
splot f(x,y) with pm3d fillcolor "cyan"

关键是命令set pm3d clip z。这将是 future 版本中的默认设置,但在 5.2 版中不受支持。您可以从 gnuplot.sf.net 上的当前 git 源存储库构建,或等待预计在 2020 年 Spring 发布的 5.4 版。 enter image description here

关于plot - gnuplot - 正确裁剪 3D 图 (splot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59072863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com