Matlab 如何将3D和2D绘图显示在彼此的顶部?

Matlab 如何将3D和2D绘图显示在彼此的顶部?,matlab,plot,overlay,Matlab,Plot,Overlay,也就是说,一张光谱图和另一张图 N = 1000000; win = 3125; no = floor(win/2); nfft = floor(log2(N)); fs = 31250; data = pm_data.ch4(1:N); Fr = 20:10:5000; t = 1/fs:1/fs:N/fs; spectrogram

也就是说,一张光谱图和另一张图

N = 1000000;
win = 3125;                                
no = floor(win/2);                        
nfft = floor(log2(N));
fs = 31250;                          
data = pm_data.ch4(1:N);
Fr = 20:10:5000;
t = 1/fs:1/fs:N/fs;
spectrogram(data,hann(win),no,Fr,fs,'yaxis');
colorbar;
set(gca,'Yscale','log')
plot(t,ai_data.ch1(1:N))

我试着在光谱图前加上“保持”,但没用:\

要合并两个图,它们必须有相同的轴。因此,您将使用
plot
绘制的二维曲线应按照excaza的建议,通过
plot3
放置在三维空间中。这里有一个简单的例子:抛物面上的抛物线。我在
plot3
中使用0作为y坐标,并使用一条带有对比色的粗线将其与曲面分开

x = -1:0.1:1;
[X,Y] = meshgrid(x, x);
surf(X, Y, X.^2-Y.^2)
hold on 
plot3(x, zeros(size(x)), x.^2, 'k', 'linewidth', 5)
hold off

对于要组合的两个绘图,它们必须具有相同的轴。因此,您将使用
plot
绘制的二维曲线应按照excaza的建议,通过
plot3
放置在三维空间中。这里有一个简单的例子:抛物面上的抛物线。我在
plot3
中使用0作为y坐标,并使用一条带有对比色的粗线将其与曲面分开

x = -1:0.1:1;
[X,Y] = meshgrid(x, x);
surf(X, Y, X.^2-Y.^2)
hold on 
plot3(x, zeros(size(x)), x.^2, 'k', 'linewidth', 5)
hold off

可能使用,其中一个轴为常数。很难说没有不需要工具箱的代码。请在发布代码示例时初始化所有变量。如果内容不重要,请使用
rand
或类似方法。可能使用,其中一个轴为常数。很难说没有不需要工具箱的代码。请在发布代码示例时初始化所有变量。如果内容不重要,请使用
rand
或类似工具。太好了!谢谢:)有没有办法做到同样的,并且每个轴都有不同的轴?像这样:太好了!谢谢:)有没有办法做到同样的,并且每个轴都有不同的轴?这样地: