我需要在不同位置沿斜线绘制多个图。

例如,如果我:

plot(0:200,'k');
plotpts = 5:5:200;

我希望能够在原始 0:200 线顶部的每个 plotpts 上绘制一个较小的图。

我知道你可以使用 hold on 并以这种方式在顶部绘图,但我每次都需要更改我的原点。有没有人有什么建议?我真的很想留在matlab。谢谢!

最佳答案

这是我通常这样做的灵活方式:

plot(1:10, 'k')
plotpts = 2:2:8;

mainbox = get(gca, 'Position');
xlims = get(gca, 'XLim');
ylims = get(gca, 'Ylim');

for i=1:length(plotpts)
    originx = mainbox(1) + (plotpts(i) - xlims(1)) * (mainbox(3)) / (xlims(2) - xlims(1));
    originy = mainbox(2) + (plotpts(i) - ylims(1)) * (mainbox(4)) / (ylims(2) - ylims(1));

    axes('position', [originx originy 0.1 0.1], 'Color', 'none')

    % Do some plotting here...
end

关于matlab - 在 Matlab 中的另一个图上绘制一个子图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8231369/

10-12 14:04