Windows版gnuplot如何输出不含i/o/u字符的表格?
解决Windows版gnuplot表格输出含i/o/u字符的问题
问题原因
你看到的i/o/u是gnuplot对smooth zsort操作生成数据点的状态标记:
i:原始输入点o:被后续点覆盖的点u:未定义的无效点
这些标记属于输出的第三列内容,和y轴格式设置无关,所以set format y ""无法去除它们。
解决方案
以下两种方法可以清理掉这些标记字符:
方法1:提取前两列数据(推荐)
直接从生成的$Data变量中提取需要的前两列,忽略第三列的标记:
set table $Data plot FILE u 1:2:1 smooth zsort unset table # 生成无标记的干净数据 set print $CleanData do for [line in $Data] { print word(line, 1), word(line, 2) } set print # 查看结果(可选) print $CleanData
方法2:移除末尾的标记字符
如果需要保留完整行结构,仅移除末尾的i/o/u:
set table $Data plot FILE u 1:2:1 smooth zsort unset table # 清理标记字符 set print $CleanData do for [line in $Data] { len = strlen(line) cleaned = (len > 0 && line[len:len] in "iou") ? line[:len-1] : line print cleaned } set print
验证效果
执行上述代码后,$CleanData变量中就会存储不含i/o/u的表格数据,你可以直接输出或用于后续处理。
内容的提问来源于stack exchange,提问作者user24353751
相关产品推荐
相关产品推荐

