Gnuplot 5.2升级至5.4后y轴刻度无法镜像到y2轴问题咨询
Gnuplot 5.4版本y轴刻度镜像到y2轴失效的解决方法
问题现象
- Gnuplot 5.2及更早版本中,y轴刻度默认自动镜像显示在右侧y2轴,升级到5.4版本后该默认效果消失
- 运行环境为Fedora 36,内置Gnuplot版本为5.4 patchlevel 3
- 手动添加
set ytics mirror配置无效果,完全相同的旧脚本在5.2版本可正常输出镜像刻度,5.4版本下y2轴无刻度数值 - 历史输出图表的变化日期和系统Gnuplot升级日期完全吻合
复现材料
测试绘图脚本
set term postscript eps enhanced color "Helvetica" 22 size 19,10 set timefmt "%Y%m%d%H%M%S" set autoscale xy set style data lp set xdata time set xtics 3600 set grid xtics set object 1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb"white" behind set key right bottom # legend location set output "ups_w.ps" set ylabel "UPS Load (W)" set ytics 10 set yrange [0:100] set grid ytics plot "ups_load" using 1:2 title 'UPS load W' w l lw 5 exit
测试数据样例(ups_load文件末尾内容)
20220709173701 30 20220709173801 28 20220709173901 26 20220709174001 28 20220709174101 28 20220709174201 26 20220709174301 27 20220709174401 28 20220709174501 28 20220709174601 28 20220709174701 28 20220709174801 28 20220709174901 28
解决方法
Gnuplot 5.4版本调整了双轴的默认逻辑:set ytics mirror仅控制y轴刻度线在y2侧的绘制,不再自动同步y2轴的刻度标签显示,该改动是为了避免双轴绘制不同量级数据时,y2轴出现不匹配的错误刻度。
要复现5.2版本的刻度镜像效果,只需要手动将y2轴的范围、刻度间隔配置为和y轴完全一致即可,在原有脚本的set yrange [0:100]行后添加以下配置:
set y2range [0:100] # 与y轴范围保持完全一致 set y2tics 10 # 与y轴刻度间隔保持完全一致 set ytics mirror # 开启刻度线镜像
如果不需要y2轴显示多余的轴标签,可额外添加set y2label ""清空y2轴标签。
内容的提问来源于stack exchange,提问作者Eyal
相关产品推荐
相关产品推荐

