当前位置: 首页 > article >正文

【matlab】气泡图的应用

【matlab】气泡图的应用

在这里插入图片描述

.rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
clear
load zb_equi.mat
load   zb_end.mat
h=1.4;
rate=nan(length(r),length(c0));
for i=1:length(c0)x=(0:1:101-1)*dx(i) ;x1=x(end)/(zb_equi(1,i)-zb_equi(end,i))*(zb_equi(1,i)+h);x3=interp1(zb_equi(:,i),x,h);for j=1:length(zb_end{1}(1,:))x2=x(end)/(zb_end{i}(1,j)-zb_end{i}(end,j))*(zb_end{i}(1,j)+h);x4=interp1(zb_end{i}(:,j),x,h);rate(j,i)=((x4-x2)-(x3-x1))/(x3-x1)/13;end
end
[xx,yy]=meshgrid(c0*1000,r);
levels = [-0.01 -0.007 -0.005 -0.003 -0.001 -0.0005 0 0.003 0.005 0.01 0.02];
xf=720;
yf=620;
figure('Position', [0, 0, xf, yf])
a=subplot('Position',[0.1*700/xf (0.35*700-80)/yf 0.8*700/xf 0.6*700/yf]);
set(gca,'units','point')
ylim([0 120])
[Cc,c]=contourf(xx,yy,rate,levels);
levels = clabel(Cc,c,'manual','fontsize',11,'color',[0.3 0.3 0.3],'fontname','times new roman');
for i = 1:numel(levels)label = sprintf('%g%%', 100*str2double(levels(i).String));levels(i).String = label;
end
c.LineWidth = 0.2;
c.LineColor = [0.5 0.5 0.5];
hold on
[C,c1]=contour(xx,yy,rate,[-0.0005 0.003]);
c1.LineColor = [0 0 0];
x1=C(1,2:C(2,1)+1);
y1=C(2,2:C(2,1)+1);
x2=C(1,C(2,1)+3:end);
y2=C(2,C(2,1)+3:end);
x1=[20 x1];
y1=[-0.03 y1];
p3=fill([x1 fliplr(x2)],[y1 fliplr(y2)],'g' , 'EdgeColor',[0 0 0], 'FaceAlpha', 0.1);
plot([50 50],[-0.03 0.03],'--',[75 75],[-0.03 0.03],'--','LineWidth',2,'Color',[.4 .4 .4])
[cmap_smooth] = create_custom_colormap(-0.01, 0.03,[21 151 165]/256, [254 179 174;246 111 105;239 65 67]/256, 40);
h=colorbar('Location', 'east', 'Position', [0.91*700/xf, (0.4*700-80)/yf, 0.03*700/xf, 0.5*700/yf]);
ylabel(h,'Trend of tidal flat width (%/year)','Fontsize',11,'Fontname','times new roman')
colormap(cmap_smooth);
set(gca,'YTickLabel',num2str(get(gca,'YTick')'*100,'%g%%'))
set(gca,'TickLength',[0 0])
xlim([20 120])
ylim([-0.03 0.03])
hold on
%%
clearvars -except h p3 xf yf
table_tidalflat = readtable('China_tidalflat.csv','VariableNamingRule','preserve');
tidalflat = table2array(table_tidalflat);
tidalflat(:,9:10) = tidalflat(:,9:10)/100;
zeroloc=isnan(tidalflat(:,5));
tidalflat(zeroloc,:)=[];
nanloc1=find(isnan(tidalflat(:,6)));
tidalflat(nanloc1,:)=[];
nanloc3=find(isnan(tidalflat(:,10)));
tidalflat(nanloc3,:)=[];
nanloc2=find(isnan(tidalflat(:,9)));
tidalflat(nanloc2,:)=[];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[swh_uni,aa]=unique(tidalflat(:,9),'stable');
tf_unique=nan(length(swh_uni),length(tidalflat(1,:)));
for i=1:length(aa)loc=find(tidalflat(:,9)==swh_uni(i));slope_loc=tidalflat(loc,:);tf_unique(i,:)=mean(slope_loc,1,'omitnan');
end
tf_unique(tf_unique(:,10)>0.2,:)=[];
ssc_vec = tf_unique(:,7);
width_rate_vec = tf_unique(:,10);
ssc_rate_vec = tf_unique(:,9);
ssc_range = [20 60 100 140];
ssc_rate_range=linspace(-0.03,0.03,5);
P2=[];
bili=0.48;
for i = 1:length(ssc_rate_range)-1ssc_rate_min = ssc_rate_range(i);ssc_rate_max = ssc_rate_range(i+1);idx = find(ssc_rate_vec >= ssc_rate_min & ssc_rate_vec <= ssc_rate_max & ssc_vec < 50);L=length(idx);disp(L)if L<15continueelseslope_idx=sortrows(tf_unique(idx,:),10);p = slope_idx(floor(L*bili):ceil(L*(1-bili)),:);P2=[P2;p];end
end
P1 = [];
for i = 1:length(ssc_rate_range)-1ssc_rate_min = ssc_rate_range(i);ssc_rate_max = ssc_rate_range(i+1);idx = find(ssc_rate_vec >= ssc_rate_min & ssc_rate_vec <= ssc_rate_max & ssc_vec > 50);L=length(idx);disp(L)if L<15continueelseslope_idx=sortrows(tf_unique(idx,:),10);p = slope_idx(floor(L*bili):ceil(L*(1-bili)),:);P1=[P1;p];end
end
P=[P2;P1];
P(P(:,7)<20|P(:,7)>120,:)=[];
P(P(:,9)<-0.03|P(:,9)>0.03,:)=[];
P=sortrows(P,3);
P(:,end+1)=distance(P(:,3),P(:,2),P(32,3),P(32,2),6371393);
P=sortrows(P,12);
P(5:30,:)=sortrows(P(5:30,:),3,'descend');
P(31:34,:)=sortrows(P(31:34,:),2,'descend');
slope_plot=P;
x = P(:,7);
y = P(:,9);
c = P(:,10);
positive_c = c > 0;
negative_c = c < 0;
abs_c = abs(c);
min_size = 100;
max_size = 2000;
size_range = max_size - min_size;
s = min_size + size_range * ((abs_c-min(abs_c)) / (max(abs_c)-min(abs_c)));
s_1=min_size + size_range * ((0.01-min(abs_c)) / (max(abs_c)-min(abs_c)));
s_01=min_size + size_range * ((0.001-min(abs_c)) / (max(abs_c)-min(abs_c)));
min_size = 8;
max_size = 12;
size_range = max_size - min_size;
ts = min_size + size_range * ((abs_c-min(abs_c)) / (max(abs_c)-min(abs_c)));
p2=scatter(x(negative_c), y(negative_c), s(negative_c),'markeredgecolor',[1 1 1],'markerfacecolor', [78 171 144]/256,'MarkerFaceAlpha',0.7,'linewidth',1);
hold on;
p1=scatter(x(positive_c), y(positive_c), s(positive_c),'MarkerEdgeColor',[1 1 1],'markerfacecolor',[233 122 94]/256,'MarkerFaceAlpha',0.7,'linewidth',1);
[lgd,lg]=legend([p1 p2 p3],{'Expand','Retreat','Neutral zone'},'position',[0.2*700/xf (0.17*700-80)/yf 0.4*700/xf 0.1*700/yf],'Orientation','horizontal');
annotation('ellipse',[0.65 (0.175*700-80)/yf (s_1^0.5)/420*560/xf (s_1^0.5)/420*560/yf],'LineWidth',1,'Color','k','LineStyle','-.');
x_01=0.65+(s_1^0.5)/420*560/xf/2-(s_01^0.5)/420*560/xf/2;
annotation('ellipse',[x_01 (0.175*700-80)/yf (s_01^0.5)/420*560/xf (s_01^0.5)/420*560/yf],'LineWidth',1,'Color','k','LineStyle','-.');
xx_1=[0.65+(s_1^0.5)/420*560/xf/2+0.1 0.65+(s_1^0.5)/420*560/xf/2];yy_1=[(0.175*700-80)/yf+(s_1^0.5)/420*560/yf (0.175*700-80)/yf+(s_1^0.5)/420*560/yf];
annotation('textarrow',xx_1,yy_1,'String','1% ','HeadLength',4,'HeadWidth',4,'LineWidth',0.5)
xx_01=[0.65+(s_1^0.5)/420*560/xf/2+0.05 0.65+(s_1^0.5)/420*560/xf/2];yy_01=[(0.175*700-80)/yf+(s_01^0.5)/420*560/yf (0.175*700-80)/yf+(s_01^0.5)/420*560/yf];
annotation('textarrow',xx_01,yy_01,'String','0.1% ','HeadLength',4,'HeadWidth',4,'LineWidth',0.5)
lg(4).Children.MarkerSize = 12;
lg(5).Children.MarkerSize = 12;
lg(6).FaceAlpha=0.1;
lg(6).Vertices(1,2)=lg(6).Vertices(1,2)+0.2;
lg(6).Vertices(2,2)=lg(6).Vertices(2,2)-0.2;
lg(6).Vertices(3,2)=lg(6).Vertices(3,2)-0.2;
lg(6).Vertices(4,2)=lg(6).Vertices(4,2)+0.2;
legend('boxoff')
set(gca,'YTickLabel',num2str(get(gca,'YTick')'*100,'%g%%'))
set(gca,'FontSize',12,'fontname','times new roman');
set(h,'YTick',[-0.01 0 0.01 0.02 0.03],'fontsize',9)
set(h,'YTickLabel',num2str(get(h,'YTick')'*100,'%g%%'))
xlabel('current SSC (mg/L)','fontsize',15,'fontweight','bold')
ylabel('SSC change rate (year^{-1})','fontsize',15,'fontweight','bold')
xlim([20 120])
ylim([-0.03 0.03])
for i=1:length(x)text(x(i),y(i),num2str(i),'Color','black','FontSize',ts(i),'HorizontalAlignment','center','VerticalAlignment','middle')
end
%%
h1=axes('position',[0.72*700/xf (0.77*700-80)/yf 0.18*700/xf 0.18*700/yf]);	
axis(h1);	
World =shaperead('landareas.shp','UseGeoCoords',true);
ChinaL=shaperead('china1.shp');
ChinaP=shaperead('china2.shp');
hold on
geoshow(ChinaP,'facecolor',[.7 .7 .7],'edgecolor',[.8 .8 .8])
mapshow(ChinaL,'color',[.8 .8 .8])
scatter(slope_plot(positive_c,2),slope_plot(positive_c,3),20,[233 122 94]/256,'filled')
scatter(slope_plot(negative_c,2),slope_plot(negative_c,3),20,[78 171 144]/256,'filled')
x=[slope_plot(1,2) slope_plot(4,2)-1 slope_plot(5,2)-1 slope_plot(11,2)-2 slope_plot(12,2)-2.5 slope_plot(15,2)-2.5 slope_plot(20,2)-3 slope_plot(29,2)-2 slope_plot(32,2) slope_plot(34,2)-2];
y=[slope_plot(1,3)+1 slope_plot(4,3)+1 slope_plot(5,3)+1 slope_plot(11,3) slope_plot(12,3)  slope_plot(15,3) slope_plot(20,3) slope_plot(29,3)+1.5 slope_plot(32,3) slope_plot(34,3)+1];
text(x,y,{'1','4','5','11','12','15','20','29','32','34'},'Color',[.2 .2 .2],'FontSize',9,'fontname','times new roman')
xlim([104.7 128])
ylim([19.7 43])
yticks([])
xticks([])
set(gca,'color','none');
set(gca,'linewidth',0.5,'xcolor',[.8 .8 .8],'ycolor',[.8 .8 .8])
print('-djpeg','-r300','fig5.jpg')

参考文献:
Liu, S., Hu, Z., Grandjean, T.J.et al.Dynamics and drivers of tidal flat morphology in China.Nat Commun16, 2153 (2025). https://doi.org/10.1038/s41467-025-57525-y

相关文章:

【matlab】气泡图的应用

【matlab】气泡图的应用 .rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; } clear load zb_equi.mat load …...

@Configuration注解对应实现implements WebMvcConfigurer的配置不生效问题。

检查项目是否有其他配置实现了 extends WebMvcConfigurationSupport&#xff0c;如果有就是这个配置导致实现implements WebMvcConfigurer的配置不生效。 我的问题项目有imgconfig&#xff0c;和webconfig Configuration public class ImgConfig extends WebMvcConfigurationS…...

飞帆控件:在编辑模式下额外加载的库

飞帆是一个自由的控件设计平台。在飞帆中&#xff0c;我们可以很方便地创建基于 Vue 2 组件的控件&#xff0c;并使用控件来搭建网页。 他山之石&#xff0c;可以攻玉。在创建控件中&#xff0c;使用 js 、css 依赖库能让我们的控件更强大。 有些时候&#xff0c;在编辑模式下…...

【k8s】docker、k8s、虚拟机的区别以及使用场景

一、Docker &#xff08;一&#xff09;概念 Docker 是一个开源的应用容器引擎&#xff0c;允许开发者将应用及其依赖打包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可实现虚拟化。 &#xff08;二&#xff09;隔离性 Docker 的隔离…...

Super-Vlan和MUX-Vlan的原理、配置、区别

Super-Vlan 原理 Super-Vlan也叫Aggregate-Vlan。 一般的三层交换机中&#xff0c;通常是采用一个VLAN对应一个vlanif接口的方式实现广播域之间的互通&#xff0c;这在某些情况下导致了IP地址的浪费。因为一个VLAN对应的子网中&#xff0c;子网号、子网定向广播地址、子网缺…...

Docker容器化技术全栈指南:从基础运维到企业级实践

Docker容器化技术全栈指南&#xff1a;从基础运维到企业级实践 一、Docker核心价值与日常运维全景 1. 容器化革命性优势 维度传统虚拟化Docker容器启动速度分钟级&#xff08;完整OS引导&#xff09;秒级&#xff08;共享内核&#xff09;资源消耗每个VM需独立OS&#xff08;…...

Python 赋能区块链教育:打造去中心化学习平台

Python 赋能区块链教育:打造去中心化学习平台 引言 区块链技术正在重塑全球多个行业,而教育领域也不例外。传统的在线学习平台往往依赖中心化存储和管理模式,导致数据安全、用户隐私、资源共享等问题难以解决。而随着 Web 3.0 的发展,区块链在教育场景中的应用逐渐受到关…...

el-table怎么显示 特殊单元格的值

1. 在 el-table-column 上绑定了 formatter 方法 formatEntityName &#xff0c;它会对每一行该列的数据&#xff08; cellValue &#xff09;进行处理。 2. 在 formatEntityName 方法中&#xff0c;尝试对传入的 cellValue 进行 JSON.parse 操作&#xff0c;并根…...

Java中实现单例模式的多种方法:原理、实践与优化

单例模式&#xff08;Singleton Pattern&#xff09;是设计模式中最简单且最常用的模式之一&#xff0c;旨在确保一个类只有一个实例&#xff0c;并提供全局访问点。在 Java 开发中&#xff0c;单例模式广泛应用于配置管理、日志记录、数据库连接池和线程池等场景。然而&#x…...

2025-04-23 Python深度学习3——Tensor

文章目录 1 张量1.1 数学定义1.2 PyTorch中的张量 2 创建 Tensor2.1 直接创建**torch.tensor()****torch.from_numpy()** 2.2 依据数值创建**torch.zeros() / torch.zeros_like()****torch.ones() / torch.ones_like()****torch.full() / torch.full_like()****torch.arange() …...

在统信UOS/麒麟Kylin OS操作系统中配置APT和GIT代理

在统信UOS/麒麟Kylin OS操作系统中配置APT和GIT代理 在内网环境中&#xff0c;直接访问外部资源可能会受到限制&#xff0c;这时候配置APT和GIT的代理就显得尤为重要。本文将详细介绍如何在统信UOS和麒麟Kylin OS操作系统中配置APT和GIT的代理。 为什么需要配置APT和GIT代理&…...

spring,spring boot, spring cloud三者区别

Spring Framework vs Spring Boot vs Spring Cloud 1. Spring Framework 定位&#xff1a;基础框架&#xff0c;提供核心的IoC容器、AOP、事务管理、数据访问、Web MVC等能力。特点&#xff1a; 模块化设计&#xff1a;可单独使用某些模块&#xff08;如仅用Spring JDBC&…...

第十七讲、Isaaclab中使用操作空间控制器

0 前言 官方教程&#xff1a;https://isaac-sim.github.io/IsaacLab/main/source/tutorials/05_controllers/run_osc.html IsaacsimIsaaclab安装&#xff1a;https://blog.csdn.net/m0_47719040/article/details/146389391?spm1001.2014.3001.5502 有时候&#xff0c;仅使用…...

基于SpringBoot的校园二手商品在线交易系统+含项目运行说明文档

基于SpringBoot的校园二手商品在线交易系统含项目运行说明文档 专注校园二手交易平台是一个基于Java的在线市场&#xff0c;专为学生设计&#xff0c;便于买卖二手商品。平台提供全面的用户管理功能&#xff0c;包括学生、管理员和二手商品卖家账户管理。商品管理功能允许用户…...

电商行业下的Java核心、Spring生态与AI技术问答

电商行业下的Java核心、Spring生态与AI技术问答 在互联网大厂求职的Java程序员马架构&#xff0c;今天参加了一场关于电商行业的技术面试。以下是面试官和马架构之间的5轮提问和回答。 第一轮提问 问题1&#xff1a;请简要描述一下电商系统中的高并发处理方案。问题2&#x…...

面向电力变压器的声纹智能诊断系统简析

面向电力变压器的声纹智能诊断系统是一种利用声纹识别技术对电力变压器运行状态进行实时监测和故障诊断的系统。以下是其简要分析&#xff1a; 系统组成 感知层&#xff1a;主要由声纹传感器和振动传感器组成。声纹传感器一般采用高灵敏度麦克风&#xff0c;用于采集变压器向…...

《浔川AI翻译v6.1.0问题已修复公告》

《浔川AI翻译v6.1.0问题已修复公告》 尊敬的浔川AI翻译用户&#xff1a; 感谢您对浔川AI翻译的支持与反馈&#xff01;我们已针对 **v6.1.0** 版本中用户反馈的多个问题进行了全面修复&#xff0c;并优化了系统稳定性。以下是本次修复的主要内容&#xff1a; 已修复问题 ✅…...

详解springcloud gateway工作原理、断言、filter、uri、id、全局跨域、globalfilter等以及关键源码实现

1.gateway概念 网关就是当前微服务项目的"统一入口"程序中的网关就是当前微服务项目对外界开放的统一入口所有外界的请求都需要先经过网关才能访问到我们的程序提供了统一入口之后,方便对所有请求进行统一的检查和管理 2. 网关的主要功能 将所有请求统一经过网关网…...

C++面向对象特性之继承篇

C语音是面向过程的语言&#xff0c;而C在其之上多了面向对象的特性&#xff0c;面向对象三大特性:封装性、继承性、多态性。今天主包来讲讲自己学到的关于C继承特性的知识。 一、继承是什么 继承是提高代码复用的一种重要手段。正如C的模版、泛型编程等等都是为了实现代码复用…...

【Java设计模式及实践学习-第4章节-结构型模式】

第4章节-结构型模式 笔记记录 1. 适配器模式2. 代理模式3. 装饰器模式4. 桥接模式5. 组合模式6. 外观模式7. 享元模式8. 总结 1. 适配器模式 2. 代理模式 3. 装饰器模式 4. 桥接模式 5. 组合模式 6. 外观模式 7. 享元模式 Java语言中的String字符串就使用了享元模式&…...

【AI News | 20250423】每日AI进展

AI Repos 1、suna Suna是一款完全开源的AI助手&#xff0c;旨在通过自然对话帮助用户轻松完成现实世界的任务。它作为您的数字伙伴&#xff0c;提供研究、数据分析和日常问题解决等功能&#xff0c;并结合强大的能力与直观的界面&#xff0c;理解您的需求并交付成果。Suna的工…...

大数据利器Kafka

大数据利器Kafka&#xff1a;从入门到实战的全面指南 在大数据的世界里&#xff0c;Kafka就像是一个高效的“数据快递员”&#xff0c;负责在不同的系统之间快速、可靠地传递数据。今天&#xff0c;咱们就一起来深入了解一下这个强大的工具。Kafka是由LinkedIn开发的分布式发布…...

.NET、java、python语言连接SAP系统的方法

💡 本文会带给你 可用哪些技术与Sap系统连接怎样用Rfc技术连接SAP一. SAP系统与外部系统集成技术 SAP系统提供了多种方式供Java、.NET、Python等外部编程语言进行连接和集成。 1. RFC (Remote Function Call) 连接 适用语言:Java, .NET, Python, 其他支持RFC的编程语言 …...

【学习准备】算法和开发知识大纲

1 缘起 今年&#xff08;2025年&#xff09;的职业升级结果&#xff1a;不通过。没办法升职加薪了。 需要开始完善学习&#xff0c;以应对不同的发展趋势&#xff0c;为了督促自己学习&#xff0c;梳理出相关学习大纲。 分为算法和开发两部分。 算法&#xff0c;包括基础算法和…...

【Nova UI】七、SASS 全局变量体系:组件库样式开发的坚固基石

序言 咱们已经实现了 SASS 中一系列实用的函数和混入&#xff0c;可它们究竟如何在实际的组件库样式开发里大展身手&#xff0c;尤其是在构建全局变量体系这一关键环节呢&#x1f9d0;&#xff1f;这篇文章将为你揭晓答案&#xff0c;带你深入了解怎样利用这些工具实现 SASS 全…...

第七篇:linux之基本权限、进程管理、系统服务

第七篇&#xff1a;linux之基本权限、进程管理、系统服务 文章目录 第七篇&#xff1a;linux之基本权限、进程管理、系统服务一、基本权限1、什么是权限&#xff1f;2、为什么要有权限&#xff1f;3、权限与用户之间的关系&#xff1f;4、权限对应的数字含义5、使用chmod设定权…...

Windows 同步技术-一次性初始化

组件通常设计为在首次调用时执行初始化任务&#xff0c;而不是加载它们时。 一次性初始化函数可确保此初始化仅发生一次&#xff0c;即使多个线程可能尝试初始化也是如此。 Windows Server 2003 和 Windows XP&#xff1a; 应用程序必须使用 互锁函数 或其他同步机制提供自己的…...

爬虫案例-爬取某企数据

文章目录 1、准备要爬取企业名称数据表2、爬取代码3、查看效果 1、准备要爬取企业名称数据表 企业名称绍兴市袍江王新国家庭农场绍兴市郑杜粮油专业合作社绍兴市越城区兴华家庭农场绍兴市越城区锐意家庭农场绍兴市越城区青甸畈家庭农场绍兴市袍江王新国家庭农场绍兴市袍江月明…...

VAE-LSTM异常检测模型复刻报告

VAE-LSTM异常检测模型复刻报告 复刻背景 本报告记录了我复刻VAE-LSTM异常检测模型的完整过程。原论文提出了一种结合变分自编码器(VAE)和长短期记忆网络(LSTM)的异常检测方法&#xff0c;用于时间序列数据。 环境配置 复刻过程中使用的环境配置如下&#xff1a; Python 3.…...

学习笔记—C++—string(一)

目录 string 为什么学习string的类 string类的常用接口 string类对象的常见构造 string类对象的访问及遍历操作 operator[] 迭代器 范围for auto 迭代器&#xff08;二&#xff09; string类对象的容量操作 size,length,max_size,capacity,clear基本用法 reserve 提…...