Matlab进阶绘图第50期—气泡堆叠蝴蝶图

news2024/11/27 12:34:18

气泡堆叠蝴蝶图是堆叠蝴蝶图与气泡图的组合—在堆叠蝴蝶图每根柱子上方添加大小不同的气泡,用于表示另外一个数据变量(如每根柱子各组分的平均值)的大小

本文利用自己制作的BarBubble工具,进行气泡堆叠蝴蝶图的绘制,先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式


1. 数据准备

此部分主要是读取原始数据并初始化绘图参数

% 读取数据load data.mat% 初始化绘图参数butterflydata1 = x1;butterflydata2 = x2;bubbledata1 = y1;bubbledata2 = y2;offset1 = 2700;textoffset1 = 300;offset2 = 2700;textoffset2 = 300;bsz = [5 30];Label={'Sample1','Sample2','Sample3','Sample4','Sample5','Sample6','Sample7','Sample8'};

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的SCI权威配色库

C = TheColor('sci',2062,'map',10);C1 = C(1,1:3);C2 = C(2,1:3);C3 = C(3,1:3);C4 = C(4,1:3);C5 = C(10,1:3);C6 = C(9,1:3);C7 = C(8,1:3);C8 = C(7,1:3);

3. 气泡堆叠蝴蝶图绘制

调用‘BarBubble’命令,绘制初始气泡堆叠蝴蝶图

[ax1,ax2,b1,b2,bubble1,bubble2]=BubbleButterfly(figureHandle,butterflydata1,butterflydata2, ...    bubbledata1,bubbledata2,offset1,offset2,bsz,Label,'stacked');% 添加左翼气泡注释for i = 1:length(bubbledata1)    text(ax1, ...        offset1+textoffset1, i, num2str(bubbledata1(i)), ...        'HorizontalAlignment','right', ...        'VerticalAlignment','middle', ...        'FontSize',10, ...        'FontName','Arial', ...        'color','k')end  % 添加右翼气泡注释for i = 1:length(bubbledata2)    text(ax2, ...        offset2+textoffset2, i, num2str(bubbledata2(i)), ...        'HorizontalAlignment','left', ...        'VerticalAlignment','middle', ...        'FontSize',10, ...        'FontName','Arial', ...        'color','k')end 

4. 细节优化

为了插图的美观与信息完整性,对图形细节等进行美化

% 左翼优化% 蝴蝶图属性调整b1(1).FaceColor = C1;b1(2).FaceColor = C2;b1(3).FaceColor = C3;b1(4).FaceColor = C4;% 气泡属性调整bubble1.MarkerFaceColor = C1;bubble1.MarkerEdgeColor = C1;bubble1.MarkerFaceAlpha = 1;% 坐标区调整set(ax1, 'Box','off',...         'LineWidth',1,...         'TickLength',[0 0],...         'XGrid','off','YGrid','off',...         'XDir','reverse',...         'YDir','reverse',...         'YAxisLocation','right',...         'YTick',[])set(ax1, 'xtick',0:500:3000,...         'xlim', [0 3000],...         'ylim', [0.5 8.5])ax1.XRuler.Axle.LineStyle = 'none'; % 标签及Legend1设置hLegend1 = legend(ax1, ...                 'F1','F2','F3','F4', ...                 'Location', 'northoutside',...                 'Orientation','horizontal');hLegend1.ItemTokenSize = [10 10];hLegend1.Box = 'off';% 字体字号set([ax1,hLegend1], 'FontName', 'Arial', 'FontSize', 9)% 右翼优化% 蝴蝶图属性调整b2(1).FaceColor = C5;b2(2).FaceColor = C6;b2(3).FaceColor = C7;b2(4).FaceColor = C8;% 气泡属性调整bubble2.MarkerFaceColor = C5;bubble2.MarkerEdgeColor = C5;bubble2.MarkerFaceAlpha = 1;set(ax2, 'Box','off',...         'LineWidth',1,...         'TickLength',[0 0],...         'XGrid','off','YGrid','off',...         'XDir','normal',...         'YDir','reverse',...         'YAxisLocation','left',...         'YTick',[])set(ax2, 'xtick',0:500:3000,...         'xlim', [0 3000],...         'ylim', [0.5 8.5])ax2.XRuler.Axle.LineStyle = 'none';  % 标签及Legend2设置hLegend2 = legend(ax2, ...                 'F5','F6','F7','F8', ...                 'Location', 'northoutside',...                 'Orientation','horizontal');hLegend2.ItemTokenSize = [10 10];hLegend2.Box = 'off';% 字体字号set([ax2,hLegend2], 'FontName', 'Arial', 'FontSize', 9)% 背景颜色set(gcf,'Color',[1 1 1])

设置完毕后,以期刊所需分辨率、格式输出图片。

%% 图片输出figW = figureWidth;figH = figureHeight;set(figureHandle,'PaperUnits',figureUnits);set(figureHandle,'PaperPosition',[0 0 figW figH]);fileout = 'test';print(figureHandle,[fileout,'.png'],'-r300','-dpng');

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1582196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

假期别闲着:REST API实战演练之创建Rest API

1、创建实体类,模拟实体对象 创建一个类,模拟数据数据库来存储数据,这个类就叫Person。 其代码如下: package com.restful;public class Person {private String name;private String about;private int birthYear;public Perso…

C++(六个默认成员函数)

目录 六个默认成员函数构造函数析构函数拷贝构造函数 总结 六个默认成员函数 默认成员函数的概念:如果用户不显式写,编译器会自动生成的函数,就是默认成员函数 构造函数 构造函数是六个默认成员函数之一,构造函数的功能类似于init…

血常规、尿检等指标就能识别卵巢癌!中山大学刘继红团队牵头,四大医学院联合构建 AI 融合模型

根据国家卫生健康委员会发布的《卵巢癌诊疗指南(2022 版)》,我国卵巢癌年发病率居女性生殖系统肿瘤第 3 位,仅次于子宫颈癌和子宫体恶性肿瘤,病死率位于女性生殖道恶性肿瘤之首,其 5 年生存率与诊断时的病程…

VM-UNet: Vision Mamba UNet for Medical Image Segmentation

VM-UNet: Vision Mamba UNet for Medical Image Segmentation VM-UNet:基于视觉Mamba UNet架构的医学图像分割 论文链接:http://arxiv.org/abs/2402.02491 代码链接:https://github.com/JCruan519/VM-UNet 1、摘要 文中利用状态空间模型SS…

Vue2 —— 学习(四)

一、收集表单数据 (一)介绍 前面其实已经 学过了 v-model 双向绑定事件,能获取到表单中的内容到 vm 实例对象中 但是前面只是收集文本框,下面学习一下 各种类型表单数据收集 (单/多 选,下拉框&#xff0…

Java - 赋值运算符

在这个实战中,我们将学习赋值运算符的使用方法。首先,我们将介绍简单赋值运算符的基本概念和语法格式。然后,我们将通过案例演示来加深对赋值运算符的理解。接下来,我们将对比Java和Python这两种不同的编程语言,探讨它…

linux进阶篇:文件查找的利器——grep命令+管道操作详解

Linux文件查找的利器——grep命令管道操作详解 1 grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Uni…

4.2.4 理解路由器数据包过程

1、实验目的 通过本实验可以掌握: 了解IP路由原理了解数据包封装和解封装的概念了解路由器路由和交换过程 2、实验拓扑 观察路由器路由数据包过程的实验拓扑如图4-3所示,设备接口地址信息如表4-2所示。 图4-3 观察路由器路由数据包过程的实验拓扑 本…

常见深度学习之十二大激活函数【函数定义、性质、数学公式、代码实现】

目录 前言 1、激活函数的定义与作用 2、激活函数的性质 二、常见的激活函数 2.1 Sigmoid函数: 1. 作用 2. 优点 3. 缺点 4. 数学公式 5.Sigmoid函数实现及可视化图像 2.2 Tanh函数 1. 函数定义 2.优点 3.缺点 4.Tanh函数实现及可视化图像 2.3ReLU 函数 :…

盘点那些好用的FIORI App(六)-导出金税批量开票文件

着全电发票政策的推行,越来越多的企业由原来的纸质专票以及电子票转向了全电发票,全电发票与原来票的区别在于,企业不再需要金税盘,可以直接登录电子开票平台,开具电子发票。税务平台提供了一个可以批量上传发票进行开…

SpringBoot学习笔记三-原理分析

SpringBoot学习笔记三-原理分析 SpringBoot自动装配1.1 案例1.2 通过注解方式管理Bean1.3 小结1.4 Enable注解1.5 Import注解1.5.1 ImportSelector实现类1.5.2 导入ImportBeanDefinitionRegistrar 1.5 EnableAutoConfiguration1.6 案例 SpringBoot自动装配 当再pom.xml中导入对…

数据结构|排序总结(1)|直接插入排序

排序分类 插入排序:直接插入排序,希尔排序 选择排序:选择排序,堆排序 交换排序:冒泡排序,快速排序 归并排序 插入排序 直接插入排序 相当于摸牌,例如我们现在手上有{2,4&#xff0…

无法解析符号 ‘mybatis‘(类似这种报错)

问题:无法解析符号 mybatis(类似这种报错) 解决:

安科瑞用户侧35kV用户变电站系统结构【110kV/66kV/35kV】

35kV综自系统项目怎么做?客户群体是什么?能带来多大的业绩? 1)主要客户群体是设计院(电力设计院、行业设计院)、甲方、总包。 2)综自系统本身的体量和业绩: a.大约35kV&#xff08…

螺旋矩阵.

0螺旋矩阵 - 蓝桥云课 (lanqiao.cn) 题目描述 对于一个n行m列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。 例如,一个4行5列的螺旋矩阵如下: 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 …

微服务(狂神)

什么是微服务: 微服务方案: 1. SpringCloud NetFlix 2. Dubbo 3. SpringCloud Alibaba 解决了什么问题: 1. 服务过多,客户端怎么访问 2. 服务过多,服务间怎么传值 3. 服务过多,如何治理 4. 服务过多…

【HTML】简单制作一个分形动画

目录 前言 开始 HTML部分 效果图 ​编辑​编辑​编辑​编辑总结 前言 无需多言,本文将详细介绍一段代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,其中HTML的文件名改为[index.html]&a…

Python中csr_matrix的两种初始化方法

本文以csr_matrix为例来说明sparse矩阵的使用方法,其他类型的sparse矩阵可以参考https://docs.scipy.org/doc/scipy/reference/sparse.html csr_matrix是Compressed Sparse Row matrix的缩写组合,下面介绍其两种初始化方法 csr_matrix((data, (row_ind…

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽,配置为:16C64G-450G SSD系统盘-35M带宽-8000G月流量 华北-北京,京东云活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图: 京东云16核64G云服务器…

Python-VBA函数之旅-bool函数

目录 1、bool函数 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:非风V非雨-CSDN博客 bool函数(Boolean Function)用于将给定的值转换为布尔值(True或False)。常见的应用场景有: 1、条件判断:bool()…