在Matlab中绘制另一个绘图顶部的子图

St-*_*hen 3 matlab plot graph

我需要在不同位置沿着斜线绘制几个图.

例如,如果我:

plot(0:200,'k');
plotpts = 5:5:200;
Run Code Online (Sandbox Code Playgroud)

我希望能够在原始0:200线上绘制每个绘图的较小绘图.

我知道你可以用hold on这种方式进行顶部拍摄,但我每次都需要改变我的起源.有没有人有什么建议?我真的很想留在matlab.谢谢!

Joh*_*lby 9

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

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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述