plot an image with axes that match the source surface plot
I am having a problem getting a match between a surface plot and an image of the plot. This is possibly to do with NaNs along border and the problem addressed in https://uk.mathworks.com/matlabcentral/answers/484482-surf-and-nan-plotting-bug. However, I have tried a range of adjustments to the axis without success. Any pointers gratefully appreciated. Some sample code and a grid file:
%load the grid
load(‘test_grid’,’-mat’); %load the grid struct
Z = grid.z’;
hf = figure(‘Tag’,’PlotFig’);
ax = axes(hf);
C = pcolor(ax,grid.x,grid.y,Z);
shading interp
axis equal tight
delX = abs(grid.x(2)-grid.x(1));
delY = abs(grid.y(2)-grid.y(1));
xLim = xlim;
yLim = ylim;
%adjusting the x and y limits seems to have no effect on the image plot
yLim(2) = yLim(2)-delY*10;
%overlay a derived image on the original plot
hold(ax,’on’)
h_im = imagesc(‘XData’,xLim,’YData’,yLim,’CData’,C.CData);
h_im.AlphaData = 0.5;
hold(ax,’off’)I am having a problem getting a match between a surface plot and an image of the plot. This is possibly to do with NaNs along border and the problem addressed in https://uk.mathworks.com/matlabcentral/answers/484482-surf-and-nan-plotting-bug. However, I have tried a range of adjustments to the axis without success. Any pointers gratefully appreciated. Some sample code and a grid file:
%load the grid
load(‘test_grid’,’-mat’); %load the grid struct
Z = grid.z’;
hf = figure(‘Tag’,’PlotFig’);
ax = axes(hf);
C = pcolor(ax,grid.x,grid.y,Z);
shading interp
axis equal tight
delX = abs(grid.x(2)-grid.x(1));
delY = abs(grid.y(2)-grid.y(1));
xLim = xlim;
yLim = ylim;
%adjusting the x and y limits seems to have no effect on the image plot
yLim(2) = yLim(2)-delY*10;
%overlay a derived image on the original plot
hold(ax,’on’)
h_im = imagesc(‘XData’,xLim,’YData’,yLim,’CData’,C.CData);
h_im.AlphaData = 0.5;
hold(ax,’off’) I am having a problem getting a match between a surface plot and an image of the plot. This is possibly to do with NaNs along border and the problem addressed in https://uk.mathworks.com/matlabcentral/answers/484482-surf-and-nan-plotting-bug. However, I have tried a range of adjustments to the axis without success. Any pointers gratefully appreciated. Some sample code and a grid file:
%load the grid
load(‘test_grid’,’-mat’); %load the grid struct
Z = grid.z’;
hf = figure(‘Tag’,’PlotFig’);
ax = axes(hf);
C = pcolor(ax,grid.x,grid.y,Z);
shading interp
axis equal tight
delX = abs(grid.x(2)-grid.x(1));
delY = abs(grid.y(2)-grid.y(1));
xLim = xlim;
yLim = ylim;
%adjusting the x and y limits seems to have no effect on the image plot
yLim(2) = yLim(2)-delY*10;
%overlay a derived image on the original plot
hold(ax,’on’)
h_im = imagesc(‘XData’,xLim,’YData’,yLim,’CData’,C.CData);
h_im.AlphaData = 0.5;
hold(ax,’off’) imagesc, surface plot, nan data MATLAB Answers — New Questions