gnuplot多图叠加出现额外轴框问题求解:等值线相关场景
解决Gnuplot Multiplot叠加图形重复生成轴框的问题
场景1:叠加散点图出现双重轴框
你当前的代码在multiplot中先绘制等值线图,再用plot命令添加散点时,第二个绘图命令会默认重新生成一套轴框,导致画面出现双重轴。
修改方案:在执行第二个plot前,关闭轴框、刻度的绘制,避免重复渲染。修改后的完整代码如下:
f(x,y)=2*x**2 - x + 2*y**2 - y - 2 set multiplot set xrange [-3:3] set yrange [-3:3] set isosamples 250 set contour unset surface set view map set key out set cntrparam levels incremental 0,1,5 splot f(x,y) # 关闭轴相关元素,防止重复绘制轴框 unset border unset xtics unset ytics set key off # 若不需要重复显示图例可添加 plot "< echo '1 1'" set nomultiplot
场景2:叠加两个等值线图共用轴框
对于叠加多个splot等值线图的场景,同样需要在绘制第二个图前关闭轴元素,同时确保两个图的坐标范围一致(若已提前设置可省略重复设置)。修改后的示意代码如下:
f(x,y)=2*x**2 - x + 2*y**2 - y - 2 g(x,y)=(x - 1)**2 + y**2 - 1 set multiplot set xrange [-3:3] set yrange [-3:3] set isosamples 250 set contour unset surface set view map set key out set cntrparam levels incremental 0,1,5 splot f(x,y) # 关闭轴框和刻度,避免重复生成 unset border unset xtics unset ytics set cntrparam levels discrete 0 splot g(x,y) set nomultiplot
进阶优化:确保子图完全重叠
如果担心multiplot子图位置偏移,可以在初始化multiplot时指定布局和缩放参数,强制子图完全重叠:
set multiplot layout 1,1 scale 1,1
将这行代码替换原有的set multiplot,再配合上述关闭轴元素的设置,能更稳妥地保证图形叠加在同一轴框内。
内容的提问来源于stack exchange,提问作者Olumide
相关产品推荐
相关产品推荐

