在与给定矢量平行的点处绘制矢量/箭头

时间:2017-11-08 21:52:34

标签: gnuplot

我有一个带有3d坐标和标准化矢量的文件。我需要在这些给定的点上绘制这些向量。我知道我可以使用向量代数来找到"到#34;指向用"从"绘制箭头。点列为坐标。但有没有任何捷径可以直接在gnuplot中使用向量而不是箭头?

示例数据:

x y z Vx Vy Vz

4.96107 4.6534 3.49518 -0.6864 0.0575 -0.7249

2.95447 4.54705 5.19762 -0.8473 0.5311 0

2.95447 4.54705 1.18888 -0.974 -0.2265 0

1 个答案:

答案 0 :(得分:1)

gnuplot中的矢量样式需要格式为

的数据
x y x_delta y_delta

为2d图。矢量将从(x,y)绘制到(x +Δ x ,y +Δ y )。

同样,对于3d绘图,您可以使用

形式的数据
x y z x_delta y_delta z_delta

其中向量从(x,y,z)到(x +Δ x ,y +Δ y ,z +Δ z )。在这种情况下,您的数据正好是第二种情况。您可以splot "file" with vectors绘制数据(对于2d数据使用plot,对于3d数据使用splot)。这会产生

Plot with vectors

我们甚至可以自定义箭头。例如splot "file" with vectors filled生成填充箭头。

filled arrow heads

splot "file" with vectors nohead完全删除了箭头。

no arrow heads

可以非常精细地控制箭头。有关详细信息,请参阅help vectorshelp arrowstyle

因为您的文件在第一行有列标签,所以我发出了set key autotitle columnhead来通知gnuplot,并告诉它不要绘制第一行线。如果没有这个,您将收到一条错误消息 warning: Bad data on line 1 of file data.txt(我已将数据保存在文件 data.txt 中)。我还发布了unset key以防止在这些图表中绘制密钥。