绘制单个数据文件

默认的 gnuplot 命令 plot(也只是 p)绘制带有列的数据集,下面是 data_set.dat 文件的形式。

# Prototype of a gnuplot data set
# data_set.dat
# X -   X^2 -    2*X -    Random 
0       0        0        5
1       1        2        15
1.4142  2        2.8284   1
2       4        4        30
3       9        6        26.46
3.1415  9.8696   6.2832   39.11
4       16       8        20
4.5627  20.8182  9.1254   17 
5.0     25.0     10.0     25.50
6       36       12       0.908

如你所见,你可以使用浮点表示法在数据集中写入。现在一切都准备好了数据图:只输入

plot "data_set.dat"

gnuplot 将在你的 output 目的地生成一个图表。默认设置将使用数据文件的前两列,分别为 x 和 y。要指定要绘制的列,请使用 using 说明符

plot "data_set.dat" using 2:4

这意味着“使用第 2 列作为 X 绘制文件,使用第 4 列作为 Y”。如果你的数据集是三维文件,只需使用 splot ad 添加 z-column

splot "data_set.dat" using 1:2:3

对于绘制点,还有不同的样式(请参阅 gnuplot 文档或选择更多信息的绘图样式 )。如前所述,默认样式为 point

plot "data_set.dat" using 1:4 with point

这将绘制与你不键入 with point 相同的情节。数据绘图的有用风格是 linespoint,显然是“行+点”。例如:

plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp

StackOverflow 文档

绘图迭代的形式

如果你有更多的列并希望在同一个图中绘制它们,只需将你喜欢的任何参数传递给 plot 函数,用 , 分隔它们:

p "data_set.dat" u 1:2 w lp,\
    "data_set.dat" u 1:3 w lp,\
    "data_set.dat" u 1:4 w lp

无论如何有时可能会有太多的列逐个写。在这些情况下,for 迭代循环非常有用:

p for [col = 2:4] "data_set.dat" using 1:col w lp

它给出了输出

https://i.stack.imgur.com/KNhdU.jpg

简言之,for 迭代在循环中增加变量,在本例中为 col,具有确定的步骤(如果未指定= 1)。例如,for [i = 0:6:2] 将通过两个步骤将 i 从 0 增加到 6:i = 0, 2, 4, 6。所有值(开始,停止和增量)都被转换为整数值。

* 网格

绘制数据集时,网格通常很有用。添加网格类型

set grid