最佳答案
如果您希望使用内置点类型,通常有(取决于终端)一个实心圆和一个空圆。发出test
命令将显示可用的内容。例如,使用 wxt 终端,我看到
这表明我可以获得一个点类型为 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 (默认情况下在第一个绘图命令段中使用)。
注意:我已提交 pointtype variable
的功能请求选项,看起来它可能会在未来的版本中发挥作用。可以在 feature request 437 下实现此功能的初步补丁。 .
更新说明: pointtype variable
该选项目前在 gnuplot 的开发版本中可用。
关于gnuplot - gnuplot 中的点和空点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476250/