MATLAB How to convert axis coordinates to pixel coordinates?
Date: 2023-03-29 11:52:11
To convert axis coordinates to pixel coordinates in MATLAB, you can use the get(gca,'position')
command to obtain the position of the current axis relative to the figure, and the get(gcf,'position')
command to obtain the position of the figure on the screen. Then, you can use the axes2pix
function to convert the axis coordinates to pixel coordinates.
Here's an example:
% create a sample plot
x = linspace(0, 2*pi, 100);
y = sin(x);
plot(x, y);
% get the axis position and figure position
axpos = get(gca, 'position');
figpos = get(gcf, 'position');
% calculate the pixel position of the lower left corner of the axis
axpixel = axes2pix(figpos(3), figpos(4), axpos);
% convert the x and y data to pixel coordinates
xpix = axes2pix(figpos(3), axpos(3), x - axpos(1)) + axpixel(1);
ypix = axes2pix(figpos(4), axpos(4), y - axpos(2)) + axpixel(2);
% plot the data in pixel coordinates
figure;
scatter(xpix, ypix);
This code will create a scatter plot of the x
and y
data in pixel coordinates. Note that the axes2pix
function takes the width and height of the figure in pixels as its first two arguments, and the width and height of the axis in normalized units (i.e., between 0 and 1) as its next two arguments.