在gnuplot中的点和空点

时间:2016-02-18 08:25:09

标签: gnuplot

我需要在绘图中绘制点和空点以显示固定点。它们应如下图所示:空点(圆圈)和粗点。

有没有办法策划这样的事情? 感谢

Dots http://www.emathematics.net/imagenes/discontinuity2.gif

1 个答案:

答案 0 :(得分:3)

如果您希望使用内置点类型,通常(取决于终端)填充圆圈和空心圆圈。发出test命令将显示可用的内容。例如,对于wxt终端,我看到了

enter image description here

向我展示了我可以得到一个带有点类型7的实心圆和一个带有点类型6的空圆(我们不担心不同的颜色,因为它们是从线型继承的。)

现在,获得我们想要的情节的简单方法是发布plot datafile with points pt 6或点类型7.如果您需要它来依赖于您的数据,那就更难了。

假设我的数据如下所示:

1 3 0
5 8 1
2 6 0
3 2 1

前两列是x和y坐标,第三列告诉我是否应该使用空点(0)或填充点(1)。不幸的是,gnuplot不支持变量点类型命令(类似plot datafile u 1:2:($3+6) with linespoints pt var),这正是我们在这里所需要的。

为了绘制我们的数据,我们将进行两次传递。第一个将绘制线条和空圆圈(对于所有点),第二个将绘制实心圆圈(仅针对应填充的点 - 覆盖空白圆圈)。

plot datafile u 1:2 with linespoints pt 6, \
     datafile u 1:($3==1?$2:1/0) with points pt 7 lt 1

此命令将首先绘制线条和空心圆。接下来,它仅在需要时绘制实心圆圈。为此,它计算条件y坐标。如果第三列为1,则使用第二列作为y坐标。如果不是,则使用无效值1/0,这会导致gnuplot跳过该点。为了保持颜色和其他一切相同,我们使用lt 1(默认情况下在第一个绘图命令段中使用)。

enter image description here

注意:我已经为pointtype variable选项添加了功能请求,看起来它可能会用到未来版本。可以在feature request 437下实施此初步补丁。

更新注意:目前在gnuplot的开发版本中提供了pointtype variable选项。