Windows7环境下无需awk实现gnuplot按第三列范围筛选散点图
在Windows 7下无需awk用gnuplot按第三列筛选数据绘图
不需要依赖外部工具(比如awk),gnuplot自身就支持直接在绘图命令里基于列数据进行筛选,核心思路是用三元表达式结合NaN来过滤不符合条件的点——gnuplot会自动忽略包含NaN的无效数据点。
基础筛选命令
假设你的数据文件是plot.dat,要筛选第三列数值在11~19之间的点,仅用前两列绘制散点图,执行以下命令即可:
plot "plot.dat" using 1:($3>=11 && $3<=19 ? $2 : NaN) with points
命令解释
using 1:...:指定第一列作为x轴数据($3>=11 && $3<=19 ? $2 : NaN):这是gnuplot支持的三元条件表达式:- 当第三列(
$3)满足11<=数值<=19时,取第二列($2)作为y轴数据 - 不满足条件时返回
NaN,gnuplot会自动跳过这些点
- 当第三列(
扩展:多范围筛选
如果需要同时筛选多个数值范围,比如第三列在11~19或25~30之间,可嵌套三元表达式:
plot "plot.dat" using 1:($3>=11 && $3<=19 ? $2 : ($3>=25 && $3<=30 ? $2 : NaN)) with points
注意事项
- 确保你的数据文件列之间用空格或制表符分隔,gnuplot能正确识别每一列数据
- 如果需要自定义点样式,可在
with points后添加参数,比如with points pt 7 ps 1.5(指定点类型为实心圆,大小1.5)
内容的提问来源于stack exchange,提问作者kavanrat
相关产品推荐
相关产品推荐

