如何使用gnuplot绘制简单的2d矢量箭头?

时间:2013-05-14 10:40:36

标签: gnuplot

这是我第一次尝试使用gnuplot,我找不到任何关于如何完成此操作的说明。我找到的最接近的是:

  

http://gnuplot.sourceforge.net/docs_4.2/node259.html

     

使用1:2:3:4绘制'file.dat',向量头填充lt 2

但我找不到关于“file.dat”的任何解释。

那么有人可以给出一个简单的例子来说明如何绘制一个简单的2d矢量箭头吗?感谢。

2 个答案:

答案 0 :(得分:11)

gnuplot内置了非常好的帮助/文档。只需输入help plothelp vector即可了解有关如何在gnuplot中绘制向量的更多信息。

  

2D vectors样式绘制从(x,y)到(x + xdelta,y + ydelta)的向量。

     

在每个向量的末尾绘制一个小箭头。

     
    

4列:x y xdelta ydelta

  

这意味着,您的输入文件应该有4列,其中前两列定义向量/箭头的起始(x,y)位置,最后两列定义其(x,y)方向:

# file.dat
0   0   .5  .5
0   1   -.5 .5
1   1   1    0

现在输入以下命令

plot "file.dat" using 1:2:3:4 with vectors filled head lw 3

给出以下输出: Plotting vectors

使用set arrow命令

绘制矢量

如果您只需要绘制一些矢量/箭头(例如,突出显示图中的某些点),请考虑使用set arrow命令。

  set arrow 1 from pi/2,1 to pi/2,0 
  set arrow 2 from pi*3/2,-1 to pi*3/2,0 
  plot[0:2*pi] sin(x)

set arrow example

答案 1 :(得分:1)

您可以在电子表格中创建'file.dat',将其另存为文本,并使用cd命令将gnuplot指向其位置,将其放在gnuplot的路径中。如果这与您不一致,请使用gnuplot手册中的'+''++'以及'-'查看示例。这些是“虚拟数据文件”。注意,前两个是针对一个和两个列数据点,即(x)或(x,y)。您必须使用$1$2作为变量来计算dx和dy。必须设置xrangeyrange变量以及密度isosamples才能生效。

像......那样的东西。

set isosamples 30
set samples 30
set xrange [-10:10]
set yrange [-10:10]
plot '++' using 1:2:(0.1*sin($1)):(0.1*cos($2)) with vectors