Matlab论文插图绘制模板第105期—带缺口的分组填充箱线图

在之前的文章中,分享了Matlab带缺口的分组箱线图的绘制模板:

进一步,再来分享一下带缺口的分组填充箱线图的绘制模板。

先来看一下成品效果:

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


模板中最关键的部分内容

1. 数据准备

此部分主要是读取原始数据

% 读取数据load data.mat

2. 颜色定义

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

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

这里直接使用TheColor配色工具中的XKCD配色库

%% 颜色定义C = TheColor('xkcd',[260,426]);CA = [repmat(C(1,:),size(group1,2),1);      repmat(C(2,:),size(group2,2),1)];

3. 带缺口的分组填充箱线图绘制

通过调用‘boxplot’和‘patch’命令,绘制初始带缺口的分组填充箱线图

b1 = boxplot(group1,'positions',p1,'Colors','k','Notch','on','Widths',0.7,'Symbol','o');b2 = boxplot(group2,'positions',p2,'Colors','k','Notch','on','Widths',0.7,'Symbol','o');boxobj = findobj(gca, 'Tag', 'Box');for i = 1:length(boxobj)    X = get(boxobj(i),'XData');    Y = get(boxobj(i),'YData');    p(i) = patch(X,Y,CA(i,:),'EdgeColor','k','FaceAlpha',0.7,'LineWidth',1.5);enddelete(b1,b2)box_1 = boxplot(group1,'positions',p1,'Colors','k','Notch','on',...    'Widths',0.7,'Symbol','o','OutlierSize',5,'Jitter',0.2);box_2 = boxplot(group2,'positions',p2,'Colors','k','Notch','on',...    'Widths',0.7,'Symbol','o','OutlierSize',5,'Jitter',0.2);hTitle = title('Miles per Gallon by Vehicle Origin');hXLabel = xlabel('Samples');hYLabel = ylabel('Miles per Gallon (MPG)');

4. 细节优化

为了插图的美观,对带缺口的分组填充箱线图线宽线型属性进行调整

% 线宽set([box_1,box_2],'LineWidth',1.5)set([box_1(1:2,:),box_2(1:2,:)],'LineStyle','-')

然后,对坐标轴细节等进行美化:

% 坐标轴美化set(gca, 'Box', 'off', ...                                        % 边框         'LineWidth', 1,...                                       % 线宽         'XGrid', 'off', 'YGrid', 'on', ...                       % 网格         'TickDir', 'out', 'TickLength', [.015 .015], ...         % 刻度         'XMinorTick', 'off', 'YMinorTick', 'off', ...            % 小刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])             % 坐标轴颜色set(gca, 'XTick', (p1+p2)/2,...         'XTickLabel', {'Sample1','Sample2','Sample3','Sample4'},...         'Xlim',[-0.5 11.5],...         'Ylim',[-4 4]);% legendhLegend = legend([p(5),p(1)],...                 'Group1','Group2');% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 9)set([hLegend,hXLabel,hYLabel], 'FontSize', 11, 'FontName', 'Arial')set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])% 添加上、右框线xc = get(gca,'XColor');yc = get(gca,'YColor');unit = get(gca,'units');ax = axes( 'Units', unit,...           'Position',get(gca,'Position'),...           'XAxisLocation','top',...           'YAxisLocation','right',...           'Color','none',...           'XColor',xc,...           'YColor',yc);set(ax, 'linewidth',1,...        'XTick', [],...        'YTick', []);

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

%% 图片输出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.hqwc.cn/news/1908.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

筹码分布图高级用法——历史换手衰减系数自动计算公式

在使用筹码分布图时,很多人习惯于采用软件的默认设置,然而默认设置不一定能满足我们的要求。今天将向大家介绍筹码分布图的高级用法——历史换手衰减系数,并编写历史换手衰减系数自动计算公式。有些网友认为通过修改衰减系数,可以…

【C++实现二叉树的遍历】

目录 一、二叉树的结构二、二叉树的遍历方式三、源码 一、二叉树的结构 二、二叉树的遍历方式 先序遍历: 根–>左–>右中序遍历: 左–>根–>右后序遍历:左–>右–>根层次遍历:顶层–>底层 三、源码 注&am…

记事本软件误删后如何找回?

随着智能手机的普及,各种优秀的手机软件层出不穷,成为我们生活和工作中的得力助手。其中,记事本软件在手机上的应用也越来越受欢迎。 一款记事本可以给用户带来许多便利和帮助。与传统的纸质记事本相比,手机记事本具有更多的功能…

mac ppt设置起始页码

今天发现我的ppt的左边ppt的缩略图的开始页码是从2开始的,觉得很奇怪,这个解决的办法就是 点击ppt->文件->页面设置->页眉和页脚->幻灯片编号

SQL注入攻击与防护

目录 一、SQL注入攻击概述 1.1 SQL注入概念 1.1.1 标准查询过程 1.1.2 SQL注入定义 1.2 SQL注入根本原因 1.3 SQL注入条件 1.4 SQL注入防范 1.4.1 根本原因:过滤不严 1.4.2 安全设计原则:数据与代码分离 1.5 SQL注入流程 1.6 SQL注入分类 1.…

时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测

时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测 目录 时序预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)时间序列预测预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型 程序设计参考资料致谢 预测效果 基本介绍 Matlab基于PSO-LST…

Java日志框架介绍

​今天来聊一聊 Java 日志框架,不管是在项目开发阶段的调试,还是项目上线后的运行,都离不开日志。日志具有处理历史数据、定位程序问题、理解程序运行过程等重要作用。在 Spring 项目开发过程中我们常见的日志框架可能就是 logback、log4j2 和…

数据库的操作

前言 在之前的文章中,我们已经了解了什么是数据库,以及为什么有数据库,和数据库有什么作用,有了这些宏观概念之后,本章为大家进一步详细介绍对于数据库在Linux上如何具体操作。 1.创建数据库 1.1创建数据库语法 语法…

MyBatis-Plus:条件构造器Wrapper

目录 1.Wrapper概述 1.1.Wrapper的继承关系 1.2.Wapper介绍 1.3.各个构造器使用区别 1.4.构造器常用方法 2.Wrapper常用构造器介绍 2.1.QueryWrapper 2.2.UpdateWrapper 2.3.LambdaQueryWrapper 2.4.AbstractWrapper 3. Lambda条件构造器 3.1.示例 4.鸣谢 MyBati…

Spring Boot 如何使用 Spring Security 进行认证和授权

Spring Boot 如何使用 Spring Security 进行认证和授权 在 Web 应用程序中,认证和授权是非常重要的功能。Spring Security 是一个基于 Spring 框架的强大的安全框架,它提供了完整的认证和授权解决方案,并且可以轻松地集成到 Spring Boot 应用…

服务器编程:数据库连接池

引言: 数据库连接池和线程池的思想一样,是为了避免频繁创建和销毁数据库连接导致的性能开销。如果一个项目频繁的需要访问数据库,那么它就有可能需要频繁的创建/销毁数据库连接,那么我们可以采用数据库连接池的技术,在…

【几何数学】【Python】【C++】将线段沿着线段方向延长一定长度,求新的点

p1点和p2点是一条线段的两端,沿着p1指向p2的方向,将线段长度延伸长度x,求延伸后的点ep。如下图: Python代码: import mathdef extend_line_segment(p1, p2, extension_length):"""延伸线段长度并返回…