gnuplot动画等高线:添加隐形文本框及动态标题不显示问题
解决Gnuplot动态GIF中等高线隐形文本框与动态标题问题
问题1:等高线隐形文本框在动画中不生效
要让等高线标签的隐形文本框在动画中正常工作,需确保全局配置等高线标签样式,若循环内有参数修改则同步保留样式设置:
- 在脚本开头设置等高线及透明文本框样式:
# 开启等高线(base/surface/over可选,按需选择) set contour base # 自动生成等高线数量,可按需调整 set cntrparam levels auto 20 # 设置等高线标签的透明文本框:fillalpha 0.0实现完全隐形,同时避免标签与背景重叠 set cntrlabel font ",10" box opaque fillcolor rgb "white" fillalpha 0.0 - 若动画循环内有修改等高线参数的操作,需将
set cntrlabel命令放入循环内部,保证每帧都应用样式。
问题2:添加等高线后动态标题不显示
你使用的with image title columnheader(1)是给图像图层添加图例标题,而非整个图表的标题。同时绘制图像和等高线时,图例会被多图层标题覆盖,且图表本身未设置标题。解决方法如下:
- 移除
with image title columnheader(1)中的title参数,改用set title动态设置图表标题:# 循环处理不同时间{t}的数据集 do for [t=0:9] { datafile = sprintf("data_t%d.dat", t) # 读取数据文件第一行(即columnheader(1)对应的内容)作为图表标题 set title system("head -n 1 ".datafile) # 绘制图像和等高线,不需要图例则给图层加notitle plot datafile u 1:2:3 with image notitle, \ datafile u 1:2:3 with contour cntrparam levels auto notitle } - 若需要保留图例,可给对应图层添加
title,但图表标题仍需通过set title单独设置。
内容的提问来源于stack exchange,提问作者RomanK
相关产品推荐
相关产品推荐

