Matlab实现散点图叠加背景图并校正坐标轴原点与刻度
修正背景图与散点图坐标轴匹配问题
修正后的完整代码
Eh = [327.06 561.34 506.82 602.58 745.02 745.04 ... 693.96 682.9 648.46 468 412.18 522.94 459.74]./1e3; % V pH = [6.4 4.51 5.08 4.98 3.63 4.31 6.24 6.22 4.94 6.44 7.05 5.09 4.63]; %pH I = imread('Fe_Pourbaix.png'); % 翻转图像垂直方向,让图像底部对应坐标轴底部 I = flipud(I); % 定义图像的坐标映射:X轴匹配pH(0-14),Y轴匹配Eh(0.75-1.25) xImg = linspace(0, 14, size(I, 2)); yImg = linspace(0.75, 1.25, size(I, 1)); image(xImg, yImg, I, 'CDataMapping', 'scale'); hold on; % 绘制散点数据 plot(pH, Eh,'*','LineWidth',2); % 强制锁定坐标轴范围,确保完全匹配目标区间 axis([0 14 0.75 1.25]); grid on;
关键调整点
- 翻转图像:
imread读取的图像默认左上角为原点,用flipud(I)将图像上下翻转后,图像的底部会对应我们需要的坐标轴底部(Eh=0.75),解决原点位置错位问题。 - 修正Y轴坐标范围:原代码中
yImg的范围是-0.75到1.25,改为0.75到1.25,让图像的高度完全覆盖目标Eh区间,保证背景图与数据的Y轴对齐。 - 锁定坐标轴:添加
axis([0 14 0.75 1.25])强制固定坐标轴范围,避免Matlab自动缩放导致图像和散点图错位。
内容的提问来源于stack exchange,提问作者Joseph Hamad
相关产品推荐
相关产品推荐

