如何在 GNUPlot 中绘制简单的线段?

How to plot simple line segments in GNUPlot?

我正在尝试绘制一条从 (0,0) 到 (0,1) 的基本线段。我已经有一个输入文件,但我想在其中添加一行。

我已通读 and 以及 许多 其他示例。每个人都在做比我想要的复杂得多的事情,我只想将线段添加到我的 GNUPlot 脚本中。

我通常这样将数据输入到 GNUPlot 中:

$DATA << EOD
.... other data
EOD
$LS << EOL
0   0
0   1
EOL
plot $DATA using 1:2:3 with points
plot $LS with lines

但这行不通,

plot $LS using 1:2 with lines

如何绘制这条从 (0,0) 到 (0,1) 的简单线段?

您可以使用 headless arrows 绘制任意线段。

set xrange [0:1]
set yrange [0:1]
set arrow 1 from 0,0 to 0,1 nohead lw 3 lc 2
set arrow 2 from 0,0 to 1,1 nohead lw 2
plot NaN t''

“不起作用”是什么意思?您甚至不显示结果图。顺便问一下,你用第 3 列做什么?

您的第一个示例将仅使用您的数据绘制图表,然后绘制仅包含线段的新图表。 在你的第二个例子中,你的图中从 0,00,1 的线与 y 轴相同,因此只要 xrange 从 0 开始就很难看到。你可以很容易地检查这个,例如如果将颜色设置为红色或将线宽设置为 3 ,例如

plot $LS u 1:2 lc "red" lw 3

如果 set xrange[-0.2:],您还可以使线段“可见”。检查下面的例子

代码:

### plotting simple line segments
reset session

$DATA << EOD
0.1  0.2  1
0.3  0.4  2
0.5  0.6  3
0.7  0.5  4
EOD

$LS1 << EOL
0   0
0   1
EOL

$LS2 <<EOL
0   0
1   1
EOL

set xrange [-0.2:]

plot $DATA using 1:2:3 with points pt 7, \
     $LS1 u 1:2 with lines, \
     $LS2 u 1:2 with lines
### end of code

结果: