我想用matlab画下面的图,上下堆叠起来,共用一个横坐标轴,请高手指点!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想用matlab画下面的图,上下堆叠起来,共用一个横坐标轴,请高手指点!!相关的知识,希望对你有一定的参考价值。

subplot(311),

%plot(...);

set(gca,'xlim',[0 1.2]);

set(gca,'ylim',[0 4.8]);

set(gca,'xticklabel',[]);

set(gca,'box','on');

set(gca,'position',[0.15 0.65 0.75 0.27]);


subplot(312),

%plot(...);

set(gca,'xlim',[0 1.2]);

set(gca,'ylim',[0.9 2.7]);

set(gca,'xticklabel',[]);

set(gca,'box','on');

set(gca,'position',[0.15 0.38 0.75 0.27]);

ylabel('\\sigma_T');


subplot(313),

%plot(...);

set(gca,'xlim',[0 1.2]);

set(gca,'ylim',[1.1 2.1]);

set(gca,'box','on');

set(gca,'position',[0.15 0.11 0.75 0.27]);

xlabel('eV/\\Delta');



根据你的例子,让三个坐标有不同的y坐标,但x坐标相同,并连在一起

只是没有数据,所以画图语句plot缺省,换上需要的画图指令就可以

追问

非常感谢!请问以下几句代码是代表什么意思?set(gca,'xlim',[0 1.2]);set(gca,'ylim',[0 4.8]);set(gca,'position',[0.15 0.65 0.75 0.27]);

追答

set(gca,'xlim',[0 1.2]); %坐标x轴范围
set(gca,'ylim',[0 4.8]);%坐标y轴范围
set(gca,'position',[0.15 0.65 0.75 0.27]);%整个坐标区域在fig窗口中的位置

参考技术A clc;
clear;
load('Setup81360.mat')
ta=min(t_lh1);
tb=max(t_lh1);
figure(1)
axes('position',[0.15 0.74 0.8 0.16])
plot(t_lh1,lh1/1000.0,t_lh2,lh2/1000.0)
title(strcat('EAST #',shot),'Fontsize', 14)
ylabel('P_LH (MW)','Fontsize', 12)
legend('LH1','LH2','Fontsize', 10)
set(gca,'xticklabel',[])
xlim([ta,tb])
ylim([0,1.5])
set(gca,'ytick',0.3:0.3:1.2)
box off
ax2 = axes('Position',get(gca,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

axes('position',[0.15 0.58 0.8 0.16])
plot(t_wmhd,wmhd/1000.0)
ylabel('Q (kJ)','Fontsize', 12)
legend('Stored energy','Fontsize', 10)
xlim([ta,tb])
ylim([0,150])
set(gca,'ytick',30:30:120)
set(gca,'xticklabel',[])
%set(gca,'xtick',[])
box off
ax2 = axes('Position',get(gca,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

axes('position',[0.15 0.42 0.8 0.16])
plot(t_ne,ne)
ylabel('N_e (10^19)','Fontsize', 12)
legend('Density','Fontsize', 10)
xlim([ta,tb])
ylim([0,6])
set(gca,'ytick',1:2:5)
set(gca,'xticklabel',[])
%set(gca,'xtick',[])
box off
ax2 = axes('Position',get(gca,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

axes('position',[0.15 0.26 0.8 0.16])
plot(t_da2,smooth(da2,50))
xlim([ta,tb])
ylim([0,11])
set(gca,'ytick',1:3:10)
legend('DAU1','Fontsize', 10)
ylabel('D\alpha','Fontsize', 12)
set(gca,'xticklabel',[])
%set(gca,'xtick',[])
box off
ax2 = axes('Position',get(gca,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

axes('position',[0.15 0.10 0.8 0.16])
plot(t_rmp1,rmp1/1000.0,t_rmp2,rmp2/1000.0,t_rmp3,rmp3/1000.0,t_rmp4,rmp4/1000.0)
xlim([ta,tb])
ylim([-3.5,3.5])
set(gca,'ytick',-3:2:3)
legend('RMPL1','RMPL2','RMPL3','RMPL4','Fontsize', 10)
xlabel('Time (s)','Fontsize', 12);
ylabel('I_RMP (kA)','Fontsize', 12)
box off
ax2 = axes('Position',get(gca,'Position'),...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none',...
'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on
参考技术B hold on即可

MATLAB如何画两个子图共用一个Y轴标签?

参考技术A 用plotyy来画

PLOTYY(X1,Y1,X2,Y2)

左边一个y轴,右边一个y轴追问

是上下两个子图,用subplot(2,1,1)和subplot(2,1,2)画的

参考技术B 用plotyy(x,y1,x,y2)可以做到共用x轴,但是是左右两边各一个y轴,不知能不能满足您的要求。

以上是关于我想用matlab画下面的图,上下堆叠起来,共用一个横坐标轴,请高手指点!!的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB--多子图共用colorbar

Matlab画图技巧与实例:堆叠图stackedplot

matlab画图 如何将两个共用x轴的图画在一幅图上 使上边为一个y轴,下边为不同的y轴?

如何使用MATLAB绘制极坐标堆叠柱状图

如何使用MATLAB绘制极坐标堆叠柱状图

Matlab进阶绘图第13期—带填充纹理的堆叠图