gnuplot使用call命令调用脚本时箭头与标签不显示问题求助
gnuplot call命令定义的箭头标签不显示问题解决方法
核心问题与对应解决方案
- 固定ID覆盖问题
你在label.gp中硬编码指定了箭头ID为1、2,标签ID为1,每次调用脚本时都会用新参数覆盖同ID的元素,两次调用后仅会保留最后一次的配置,第一次的元素会被直接删除。
解决方法:定义箭头、标签时省略ID,gnuplot会自动生成递增的唯一ID,不会出现覆盖冲突,修改后的label.gp代码如下:
set arrow from first ARGV[1], first 110 \ to first ARGV[1], first 114 \ dt 5 lc rgb ARGV[3] nohead set arrow from first ARGV[1], first 112 \ length character -4 angle 0 \ backhead lc rgb ARGV[3] set label at first ARGV[1], first 112 right tc rgb ARGV[3] \ offset character -4.5, character 0.0 ARGV[2] print ARGV[1] print ARGV[2] print ARGV[3]
- 时间坐标未正确识别问题
你传入的x轴参数为时间格式字符串,需要主脚本提前配置x轴为时间类型,且时间解析格式和传入字符串匹配,否则坐标会被解析为无效值,元素绘制到可视区域外。
请在主脚本执行call命令前添加如下配置:
set xdata time set timefmt "%Y-%m-%d-%H-%M"
- 元素被遮挡问题
如果你的绘图包含填充曲线、色块等底层元素,默认箭头、标签可能绘制在图层背面被遮挡,可在定义时添加front参数强制元素显示在最上层:
示例修改:
set arrow from first ARGV[1], first 110 \ to first ARGV[1], first 114 \ dt 5 lc rgb ARGV[3] nohead front set arrow from first ARGV[1], first 112 \ length character -4 angle 0 \ backhead lc rgb ARGV[3] front set label at first ARGV[1], first 112 right tc rgb ARGV[3] \ offset character -4.5, character 0.0 ARGV[2] front
内容的提问来源于stack exchange,提问作者Chris Moller
相关产品推荐
相关产品推荐

