使用gnuplot在笛卡尔平面上绘制平面

使用gnuplot在笛卡尔平面上绘制平面,gnuplot,Gnuplot,我试图用gnuplot重现我在线性代数书上找到的一个图形。这是原始图像 您可以看到两个方程描述的两个平面之间的交点: 2u+v+w=5 4u-6v=-2 我假设为了使用gnuplot绘制第一个方程,我必须将其转换为以下形式: splot 5-2*x-y 其中u->x;v->y和w->z是自由变量。但结果与预期大不相同。有线索吗 您概述的方法是有道理的,但是,结果可能与您预期的相去甚远。 我建议您使用gnuplot中的箭头函数绘制单行。 此示例将生成一个与您显示的非常相似的绘图(但只有一个平面

我试图用gnuplot重现我在线性代数书上找到的一个图形。这是原始图像

您可以看到两个方程描述的两个平面之间的交点:

  • 2u+v+w=5
  • 4u-6v=-2
我假设为了使用gnuplot绘制第一个方程,我必须将其转换为以下形式:

splot 5-2*x-y

其中u->x;v->y和w->z是自由变量。但结果与预期大不相同。有线索吗


您概述的方法是有道理的,但是,结果可能与您预期的相去甚远。
我建议您使用gnuplot中的
箭头
函数绘制单行。
此示例将生成一个与您显示的非常相似的绘图(但只有一个平面):

稍微旋转一下,你会得到这样一个图形:


“但结果与预期的大不相同”——怎么会这样?你期待什么?(另外,请不要将绘图的旋转与原始图形进行比较——您的x轴大多指向右侧,他们的点位于“页面外”)您是否被迫使用
gnuplot
?对于这样的数字,如果您熟悉LaTeX,您可以使用其他工具获得更好的结果。我非常熟悉LaTeX,一开始我就开始使用MetaPost,但与Gnuplot相比,MP需要更多的代码。我不知道TikZ软件包。对您的解决方案有一些小评论:您可以使用
将对象多边形从x1、y1、z1设置为x2、y2、z2设置为…
将平面绘制为多边形,标签和箭头可以按照
图形
单位绘制和放置,例如,
将箭头从0,0,0设置为图1,0,0
@Daniele:这个答案对你有帮助吗?
set term gif
set output "demo_plane.gif"

# define your axis limits:
xmax =   6.5             
xmin =  -1.5
ymax =   8.5                 
ymin =  -1.5
zmax =   5.5
zmin =  -0.5                  
set xrange [xmin:xmax]
set yrange [ymin:ymax]
set zrange [zmin:zmax]

# remove the original axis
unset border
unset xtics
unset ytics
unset ztics

# define you data points:
x1 =  3.0
y1 = -1.0
z1 =  0.0

x2 = -1.0
y2 =  7.0
z2 =  0.0

x3 = -3.0
y3 =  7.0
z3 =  4.0

x4 =  1.0
y4 = -1.0
z4 =  4.0

# define 'arrow' without head:
set arrow 1 from x1,y1,z1 \
              to x2,y2,z2 nohead  

set arrow 2 from x2,y2,z2 \
              to x3,y3,z3 nohead  

set arrow 3 from x3,y3,z3 \
              to x4,y4,z4 nohead  

set arrow 4 from x4,y4,z4 \
              to x1,y1,z1 nohead  

# draw new axis manually (again, using arrow):
set arrow 5 from 0,0,0 \
              to 6,0,0   

set arrow 6 from 0,0,0 \
              to 0,6,0   

set arrow 7 from 0,0,0 \
              to 0,0,5 

# annotate axis labels:
set label "u" at 6.25,0,0
set label "v" at 0,6.25,0
set label "w" at 0,0,5.25

# plot will not show when empty, include dummy plot command:
set parametric 
splot x1, y1, z1 not