首页 > 解决方案 > 如何在gnuplot中绘制由部件定义的表面

问题描述

我有两个不同范围的表面。我正在尝试连接它们。表面是圆柱形和双曲面。当我做

gnuplot> splot [-pi:pi][-5:0] 7*cos(u), 7*sin(u), v
gnuplot> replot [-pi:pi][0:1.5] 7*cos(u)*cosh(v), 7*sin(u)*cosh(v), 6*sinh(v)
gnuplot> 

我只看到最后一个范围的图表,但我想要结果表面。

标签: gnuplot

解决方案


在当前的 gnuplot(5.2 版)中,采样范围使用坐标 u 和 v,这与 x 和 y 的轴范围不同。要绘制具有不同范围的多个曲面,您必须分别为每个曲面指定 u 和 v 范围。例如,参见“sampling.dem”演示的第 9 个图。在线副本位于 http://gnuplot.sourceforge.net/demo_cvs/sampling.html

生成此图的命令是

set xrange [1:100]
set yrange [1:100]
set urange [0:100]
set vrange [70:90]

splot '++' using 1:2:($1*25.*sin($2/10)), \
      [u=30:70][v=0:50] '++' using 1:2:(u*v), \
      [u=40:80][v=30:60] '++' using (u):(v):(u*sqrt(v)) lt 4, \
      [u=1:100][v=500:1000] '++' using (90):(u):(v) lt 6

请注意,使用参数模式。


推荐阅读