World coordinates XY scale
1 回表示 (過去 30 日間)
古いコメントを表示
Hi Matlab Answers,
I'm trying to plot a spacetime image with positions on the y-axis and time on the x-axis.
When displaying the image using
imshow(ST_image);
axis on;
% size(ST_image) = [500 512]
the display is 1:500 x 1:512, as expected.
When trying to change to physical dimensions, e.g.
Space_limits = [40 60]; % mm
Time_limits = [-0.01 0.1] %s
the axes are on very different scales. This causes the displayed figure to collapse the image to effectively a vertical line and I can't seem to get it to reshape.
I've tried imref2D for world coordinates, setting the XData, YData properties, scaling the axes aspect ratio, etc. I'm sure this is just a figure and/or axes property that I'm missing, but would be very grateful if somebody knew offhand.
ST_ref = imref2d(size(ST_image))
ST_ref.XWorldLimits = Time_limits;
ST_ref.YWorldLimits = Space_limits;
f = figure;
imshow(ST_image,ST_ref); axis on;
%f.XData = Time_limits;
%pbaspect([1 1 1])
Thanks for your help!
0 件のコメント
採用された回答
Kelly Kearney
2020 年 5 月 1 日
The imshow function automatically sets the DataAspectRatio to be [1 1 1], i.e. the same effect as axis equal. To undo this, set the mode back to manual.
set(gca, 'DataAspectRatioMode', 'auto');
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Lighting, Transparency, and Shading についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!