立即注册 登录
气象家园 返回首页

卑微江小澄的个人空间 http://bbs.06climate.com/?122750 [收藏] [复制] [分享] [RSS]

日志

双y轴,倒立柱状图,多折线

已有 118 次阅读2022-8-3 14:11

clear;clc;
figure(4)

%脚本运行效率低不知道咋提高

x =1962:1:2009;
x1=1962:1:1970;%x轴上的数据,第一个值代表数据开始,第二个值代表间隔,第三个值代表终止
x2=1970:1:1990;
x3=1990:1:2009;

x=x';
x1=x1';
x2=x2';
x3=x3';

data = xlsread('data.xlsx',1,'B4:O51');
GFI = data(:,1);
GTI = data(:,2);
AFI = data(:,3);
ATI = data(:,4);
pGFI = data(:,5);
pGTI = data(:,6);
pAFI = data(:,7);
pATI = data(:,8);
sGFI = data(:,9);
sGTI = data(:,10);
sAFI = data(:,11);
sATI = data(:,12);
sp = data(:,13);
pre = data(:,14);

subplot(2,2,1)%GFI
t1=polyfit(x,GFI,1);
t2=polyfit(x,pGFI,1);
t3=polyfit(x,sGFI,1);
% t4=polyfit(x1,GFI(1:9,1),1);
% t5=polyfit(x1,pGFI(1:9,1),1);
% t6=polyfit(x1,sGFI(1:9,1),1);
% t7=polyfit(x2,GFI(9:29,1),1);
% t8=polyfit(x2,pGFI(9:29,1),1);
% t9=polyfit(x2,sGFI(9:29,1),1);
% t10=polyfit(x3,GFI(29:48,1),1);
% t11=polyfit(x3,pGFI(29:48,1),1);
% t12=polyfit(x3,sGFI(29:48,1),1);
[AX,H1,H2]=plotyy(x,pre,x,[GFI,pGFI,sGFI,polyval(t1,x),polyval(t2,x),polyval(t3,x)],'bar','plot','r'); %画双轴,AX(1)左轴,AX(2)右轴,H为曲线本身
% [AX,H1,H2]=plotyy(x,pre,[x,x,x,x1,x1,x1,x2,x2,x2,x3,x3,x3],[GFI,pGFI,sGFI,polyval(t4,x1),polyval(t5,x1),polyval(t6,x1),polyval(t7,x),polyval(t8,x),polyval(t9,x),polyval(t10,x),polyval(t11,x),polyval(t12,x)],'bar','plot'); %画双轴,AX(1)左轴,AX(2)右轴,H为曲线本身
set(AX(1),'TickDir','out','YDir','reverse','Ylim',[0,500],'Xlim',[1960,2010],'YTick',[0:100:500],'YTickLabel',[0 100 200 300 400 500],'YColor','b','FontSize',12);   %设置右边轴为倒立
set(AX(2),'TickDir','in','Ylim',[700,3000],'Xlim',[1960,2010],'YTick',[700:500:3000],'FontSize',12,'YColor','k');   %设置右边轴为倒立
set(H2(1,1),'color','r','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(2,1),'color','b','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(3,1),'color','g','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(4,1),'color','r','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(5,1),'color','b','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(6,1),'color','g','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H1,'FaceColor',[0.929411768913269 0.694117665290833 0.125490203499794],'EdgeColor',[0.749019622802734 0 0.749019622802734],'BarWidth',0.3)
set(get(AX(2),'Xlabel'),'String','Time');
set(get(AX(2),'Ylabel'),'String','GFI');
set(get(AX(1),'Ylabel'),'string','Precipitation (mm)');
hold on
legend([H2(1),H2(2),H2(3),H1],'GFI','PGFI','SGFI','Precipitation'); 
hold off
% hold on
% plot([1990,1990],[0,5000],'-r','LineWidth',1.5);
% plot([2000,2000],[0,5000],'-r','LineWidth',1.5);
% hold off

subplot(2,2,2)%GTI
t1=polyfit(x,GTI,1);
t2=polyfit(x,pGTI,1);
t3=polyfit(x,sGTI,1);

[AX,H1,H2]=plotyy(x,pre,x,[GTI,pGTI,sGTI,polyval(t1,x),polyval(t2,x),polyval(t3,x)],'bar','plot','r'); %画双轴,AX(1)左轴,AX(2)右轴,H为曲线本身
set(AX(1),'TickDir','out','YDir','reverse','Ylim',[0,500],'Xlim',[1960,2010],'YTick',[0:100:500],'YTickLabel',[0 100 200 300 400 500],'YColor','b','FontSize',12);   %设置右边轴为倒立
set(AX(2),'TickDir','in','Ylim',[400,2500],'Xlim',[1960,2010],'YTick',[400:500:2500],'FontSize',12,'YColor','k');   %设置右边轴为倒立
set(H2(1,1),'color','r','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(2,1),'color','b','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(3,1),'color','g','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(4,1),'color','r','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(5,1),'color','b','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(6,1),'color','g','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H1,'FaceColor',[0.929411768913269 0.694117665290833 0.125490203499794],'EdgeColor',[0.749019622802734 0 0.749019622802734],'BarWidth',0.3)
set(get(AX(2),'Xlabel'),'String','Time');
set(get(AX(2),'Ylabel'),'String','GTI');
set(get(AX(1),'Ylabel'),'string','Precipitation (mm)');
hold on
legend([H2(1),H2(2),H2(3),H1],'GTI','PGTI','SGTI','Precipitation'); 
hold off

subplot(2,2,3)%AFI
t1=polyfit(x,AFI,1);
t2=polyfit(x,pAFI,1);
t3=polyfit(x,sAFI,1);
[AX,H1,H2]=plotyy(x,pre,x,[AFI,pAFI,sAFI,polyval(t1,x),polyval(t2,x),polyval(t3,x)],'bar','plot','r'); %画双轴,AX(1)左轴,AX(2)右轴,H为曲线本身
set(AX(1),'TickDir','out','YDir','reverse','Xlim',[1960,2010],'Ylim',[0,500],'YTick',[0:100:500],'YTickLabel',[0 100 200 300 400 500],'YColor','b','FontSize',12);   %设置右边轴为倒立
set(AX(2),'TickDir','in','Ylim',[1000,4000],'Xlim',[1960,2010],'YTick',[1000:500:4000],'FontSize',12,'YColor','k');   %设置右边轴为倒立
set(H2(1,1),'color','r','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(2,1),'color','b','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(3,1),'color','g','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(4,1),'color','r','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(5,1),'color','b','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(6,1),'color','g','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H1,'FaceColor',[0.929411768913269 0.694117665290833 0.125490203499794],'EdgeColor',[0.749019622802734 0 0.749019622802734],'BarWidth',0.3)
set(get(AX(2),'Xlabel'),'String','Time');
set(get(AX(2),'Ylabel'),'String','AFI');
set(get(AX(1),'Ylabel'),'string','Precipitation (mm)');
hold on
legend([H2(1),H2(2),H2(3),H1],'AFI','PAFI','SAFI','Precipitation'); 
hold off

subplot(2,2,4)%ATI

t1=polyfit(x,ATI,1);
t2=polyfit(x,pATI,1);
t3=polyfit(x,sATI,1);
[AX,H1,H2]=plotyy(x,pre,x,[ATI,pATI,sATI,polyval(t1,x),polyval(t2,x),polyval(t3,x)],'bar','plot','r'); %画双轴,AX(1)左轴,AX(2)右轴,H为曲线本身
set(AX(1),'TickDir','out','YDir','reverse','Xlim',[1960,2010],'Ylim',[0,500],'YTick',[0:100:500],'YTickLabel',[0 100 200 300 400 500],'YColor','b','FontSize',12);   %设置右边轴为倒立
set(AX(2),'TickDir','in','Ylim',[0,1700],'Xlim',[1960,2010],'YTick',[0:500:1700],'FontSize',12,'YColor','k');   %设置右边轴为倒立
set(H2(1,1),'color','r','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(2,1),'color','b','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(3,1),'color','g','LineWidth',1.5,'LineStyle','-');%%线型颜色
set(H2(4,1),'color','r','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(5,1),'color','b','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H2(6,1),'color','g','LineWidth',1.5,'LineStyle','--');%%线型颜色
set(H1,'FaceColor',[0.929411768913269 0.694117665290833 0.125490203499794],'EdgeColor',[0.749019622802734 0 0.749019622802734],'BarWidth',0.3)
set(get(AX(2),'Xlabel'),'String','Time');
set(get(AX(2),'Ylabel'),'String','ATI');
set(get(AX(1),'Ylabel'),'string','Precipitation (mm)');
hold on
legend([H2(1),H2(2),H2(3),H1],'ATI','PATI','SATI','Precipitation'); 
hold off

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

返回顶部