Matlab论文插图绘制模板第101期—人口金字塔图

news2024/12/23 10:22:59

在之前的文章中,分享了Matlab双向柱状图的绘制模板:

进一步,再来分享一种特殊的双向柱状图:人口金字塔图

先来看一下成品效果:

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


模板中最关键的部分内容

1. 数据准备

此部分主要是读取原始数据,并构建用于绘图的初始数据

% 读取数据load data.mat% 初始化数据X = x;Y1 = dataset1;Y2 = dataset2;lbs = {'0-4' '5-9' '10-14' '15-19' '20-24' '25-29' '30-34' '35-39' '40-44',...       '45-49' '50-54' '55-59' '60-64' '65-69' '70-74' '75-79' '80-84' '85-89',...       '90-94' '95-99' '100+'};

2. 颜色定义

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

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

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

%% 颜色定义C1 = TheColor('xkcd',260);C2 = TheColor('xkcd',426);

3. 人口金字塔图绘制

通过调用两次‘barh’命令,绘制初始人口金字塔图

GO1 = barh(X,Y1,0.6,'EdgeColor','k','LineWidth',0.7);GO2 = barh(X,Y2,0.6,'EdgeColor','k','LineWidth',0.7);hTitle = title('Population pyramid chart');hXLabel = xlabel('Percentage');hYLabel = ylabel('Age');

4. 细节优化

为了插图的美观,将初始人口金字塔图赋上之前选择的颜色,并对基线属性进行调整

% 赋色GO1.FaceColor = C1;GO2.FaceColor = C2;% 基线调整BL = get(GO2,'BaseLine');BL.LineWidth = 0.7;

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

% 坐标区调整set(gca, 'Box', 'off', ...                                         % 边框         'LineWidth', 1, 'GridLineStyle', '-',...                  % 坐标轴线宽         'XGrid', 'off', 'YGrid', 'on', ...                        % 网格         'TickDir', 'out', 'TickLength', [.015 .015], ...          % 刻度         'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])              % 坐标轴颜色set(gca, 'XTick', -6:2:6,...         'Xlim' , [-6 6], ...          'Xticklabel',{'-6%','-4%','-2%','0%','2%','4%','6%'},...         'YTick', 1:21,...         'Yticklabel',lbs)% LegendhLegend = legend([GO1,GO2], ...                 'Female','Male', ...                 'Location', 'northeast');% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 9)set([hLegend,hXLabel,hYLabel], 'FontSize', 10, 'FontName', 'Arial')set(hTitle, 'FontSize', 11, '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.coloradmin.cn/o/628548.html

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

相关文章

Lecture 17 Machine Translation

目录 Statistical MTNeural MTAttention MechanismEvaluationConclusion Machine translation (MT) is the task of translating text from one source language to another target language why? Removes language barrierMakes information in any languages accessible t…

Polarion工作流插件(自定义)

创建插件命名插件配置插件Condition&Function package com.polarion.capital.example.conditions;import com.polarion.alm.tracker.model.IWorkItem; import com.polarion.alm.tracker.workflow.IArguments; import com.polarion.alm.tracker.workflow.ICallContext; impo…

TIME_WAIT的处理方式

TIME_WAIT 是什么 TIME_WAIT 是指在 TCP 连接关闭时,等待所有分组确认被接收的状态,这个状态会持续 2MSL(Maximum Segment Lifetime)的时间,以确保所有分组都被接收。在这段时间内,该连接不能被重用。MSL …

Jmeter 实现 grpc服务 压测

一、Jmeter安装与配置 网上有很多安装与配置文章,在此不做赘述 二、Jmeter gRPC Request 插件安装 插件下载地址:JMeter Plugins :: JMeter-Plugins.org 将下载文件解压后放到Jmeter安装目录下 /lib/ext 然后在终端输入Jmeter即可打开 Jmeter GUI界面…

搞定“超超超难”剑桥面试数学题番外篇:ARM64汇编

0. 概览 在 有趣的小实验:四种语言搞定“超超超难”剑桥面试数学题 那篇博文中,我们使用 4 种语言(x64汇编、C、Swift 以及 Ruby)实现了一道算法题。 不过,其中的汇编语言对应的是 intel CPU 上的 x64 指令集&#x…

手把手教你如何把系统的前端页面改成vue 脚手架项目,实现前后端分离

这篇文章从零开始,介绍怎么把现有的一个商城的页面移动到vue脚手架项目上,实现前后端代码的完全分离。 首先,我们需要新建一个vue的脚手架的项目,在此之前,需要安装node.js 打开IntelliJ IDEA或者winR,输入…

【Java基础学习打卡03】计算机中数据的表示、存储与处理

目录 前言一、数据的表示1.数据与信息2.计算机中的数据3.计算机中数据的单位 二、数据的存储三、数据的处理1.进位计数值2.进制间转换 四、字符编码总结 前言 本小节主要介绍在计算机中数据的表示、存储与处理。要知道计算机内部使用二进制数据,也就是0和1组成的数…

STM32单片机+机智云AIoT+智能服药箱

摘要:随着我国老龄化进程的日趋加快,越来越多的老年人步入了快乐并充实的晚年生活。但是随着年龄的增长,各种医药用品也成了老年人生活的必需品,有人每天甚至需要在不同时间服用多种不同的药物,如果子女不在身边,老年人…

一款基于RT-Thread操作系统的自动测温+风扇自动调速+加湿+自动启停的智能风扇项目(附源码下载)

基于 RT-Thread 的智能加湿风扇 作品背景 一款基于 RT-Thread 操作系统的自动检测温湿度情况进行风扇转速自动调节,加湿自动启停的桌面风扇。 所用硬件: 主控:CH32V307 开发板。温湿度检测:AHT10 温湿度模块。风扇主体&#x…

企业开源测试项目实战(附全套实战项目教程+视频+源码)

接口测试项目 1. No matching distribution found for itypes1.1.0 Could not find a version that satisfies the requirement itypes1.1.0 (from -r requirements.txt (line 8)) (from versions: ) No matching distribution found for itypes1.1.0 (from -r requirements.…

Deepspeed Chat项目理解

ChatGPT的广泛使用促进大模型火起来了,深度学习人工智能开启了2.0时代,deepspeed chat是微软开源的大模型训练工具,它充分利用了deepspeed的高效训练的特点,能够自动化的进行多种大模型训练。 言归正传,在博客中我将对…

什么是大数据,常见的大数据应用领域?

现在大数据发展的如火如荼,也有不少小伙伴对于什么是大数据比较感兴趣,那么大数据在比较官方的定义是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力…

ASP.NET Core Web API入门:创建新项目

ASP.NET Core Web API入门:创建新项目 一、引言二、创建新项目三、加入Startup类,并替换Program.cs内容四、编辑Program.cs代码五、修改控制器的路由六、运行项目 一、引言 最近闲着,想着没真正从0-1开发过ASP.NET Core Web API的项目&#…

Navicat for Redis 与 Navicat Premium 16.2 现已正式发布 | 释放 Redis 全部潜能

今天,我们正式发布 Navicat for Redis 与 Navicat Premium 16.2 两款产品。注入 Redis 能力,这对 Navicat 具有里程碑意义。 此次首发的 Navicat for Redis 数据库管理开发工具,将为 Redis 用户的日常工作带来更为便捷、高效的全新体验。同时…

XV-442-57CQB-1-10伊顿触摸屏EATON

​ XV-442-57CQB-1-10伊顿触摸屏EATON XV-442-57CQB-1-10伊顿触摸屏EATON plc的通信模块是用来完成与别的PLC,其他智能控制设备或计算机之间的通信。以下简单介绍FX系列通信用功能扩展板、适配器及通信模块。 (1)通信扩展板FX2N-232-BD…

第十五章物资需求计划

物料需求计划(MRP)是物料管理(MM)和生产计划(PP)的组成部分。在本章中,您将学习如何使用MRP来优化物流和供应链规划流程。 物料需求计划(MRP)是一种用途广泛、直观的计划…

44 最佳实践-性能最佳实践-裸设备映射

文章目录 44 最佳实践-性能最佳实践-裸设备映射44.1 概述44.2 配置示例 44 最佳实践-性能最佳实践-裸设备映射 44.1 概述 配置虚拟机存储设备时,除了将文件配置给虚拟机作为虚拟磁盘使用外,还可以将块设备(物理LUN、逻辑卷等)直…

VXLAN技术应用场景及测试

定义 RFC7348定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。 VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualization ove…

设计模式(行为型模式)之:Strategy(策略模式)

文章目录 本质:动机:定义:一个不好的例子策略模式重写总结 本质: 分离算法,选择实现。动机: 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算…

LeetCode 按摩师 python

目录 1.题目描述 2.普通解法(通过部分测试用例) ​编辑 3.动态规划解法 3.题目总结 1.题目描述 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻…