MATLAB绘图技巧:插入子图并添加箭头

一般而言,matlab绘制地理底图需要额外添加工具包,本文中使用的代码需要提前安装好 m_map工具包。本例将以非洲维多利亚湖泊为例,绘制水储量的时间变化,并在原图中插入子图,添加箭头。

h1=axes('Position',[0.1 0.1 0.8 0.8])
plot(jgc_tt2(1:163),CSR_rg2(1:163),'*--','color',[0.8 0.5 0.9],'LineWidth',1)
hold on
plot(jgc_tt2(164:207),CSR_rg2(164:207),'*--','color',[0.8 0.1 0.9],'LineWidth',1)
plot(jgc_tt_0(1:163),CSR_rg_0(1:163),'+--','color',[0.2 0.5 0.9],'LineWidth',1)
plot(jgc_tt_fo,CSR_rg_fo,'+--','color',[0.2 0.1 0.9],'LineWidth',1)
x1 = [2.017441095890411e+03,2.018456164383562e+03];
x2 = [2.017441095890411e+03,2.018456164383562e+03];
y1 = [-40,-40];
y2 = [60,60];
hold on
[h,xx,yy]=fill_line(x1,y1,x2,y2)
xlim([2002,2022.5])
ylim([-20,60])
grid on
set(gca, 'GridLineStyle', ':');  % 设置为虚线
dimen = [0.27 .75 .11 -.15];
a = annotation('arrow','Position',dimen)
tex = text(2009.3,54,'Lake Victoria','FontSize',14,'Color','r')
xlabel('Year')
ylabel('EWH/cm')
ax2=axes('Position',[0.1 0.58 0.3 0.3])
lon=[-180:180];
lat=atan(tan(60*pi/180)*cos((lon-30)*pi/180))*180/pi;
m_proj('ortho','lat',-10','long',20');
m_coast('patch','y');
m_grid('linest','-','xticklabels',[],'yticklabels',[]);

ax2=axes('Position',[0.38 0.6 0.2 0.2])

lake = load('lake.txt');
plot(lake(:,1),lake(:,2))
xlim([25,40])
ylim([-10,8])
grid on
set(gca, 'GridLineStyle', ':');  % 设置为虚线

其中的fill_line为填充函数:

function [h,xx,yy]=fill_line(x1,y1,x2,y2)
x1=x1(:);
y1=y1(:);
x2=x2(:);
y2=y2(:);
xx=[x1;x2(end:-1:1)];
yy=[y1;y2(end:-1:1)];
h=fill(xx,yy,'b','FaceAlpha',0.3);
set(h,'FaceColor','r','edgecolor',[1,1,1])

结果如下图所示

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空