点击上方蓝字和“好玩的MATLAB”一起快乐玩耍吧!5 s' n' v0 H1 d$ a# t0 u- Q' i/ A
rgezik0yrer64017642021.jpg
\6 M) U' |# g+ c" F9 d好玩的matlab
# m# U6 X* E+ q6 W0 M/ Y+ K& ]带你解锁不一样的matlab新玩法$ h+ h' q3 R; M/ U3 i( T% p$ d5 a
. C) S& ?9 F# |) N* K( z# X今天介绍一下人口金字塔图,喜欢此推文的小伙伴们记得点赞+关注+分享!【尊重作者劳动成果,转载请注明推文链接和公众号名】3 Q7 M6 b, N# |1 `
效果图
1 c( p, _4 x* I* O9 z7 Z
ql5m0lcqg1364017642121.jpg
% K# A( x! m# H0 [8 }7 j% ]$ a
* o8 d* N9 }( G% |
vzsyvdpgfcy64017642222.gif
" i4 ?) b- V9 i2 r# M
- @; z* T5 I; V2 g& K人口金字塔图介绍人口金字塔图是一种用于展示人口分布和年龄结构的图形工具。它的形状类似于金字塔,因此得名。人口金字塔图通常以男性和女性在不同年龄组的分布为基础,通过不同的条形图或直方图展示出人口的年龄和性别数量或者占比分布情况。概念:形状:人口金字塔图的形状反映了不同年龄组人口的相对数量或者占比情况。通常,底部宽度代表年轻人口数量或者占比,而逐渐变窄的上半部分代表年长人口数量或者占比。分布:左侧表示男性,右侧表示女性。各个年龄层次上的横条的长度表示该年龄组的人口数量或者占比。作用和用途:人口结构分析:人口金字塔图是分析人口年龄和性别结构的重要工具。它可以显示一个国家或地区不同年龄组的相对人口数量或者占比,有助于了解人口的组成和分布情况。社会规划:政府和社会规划者可以使用人口金字塔来制定相关政策。例如,一个底部宽广的金字塔可能表示出生率高,政府可能需要关注教育、医疗等方面的资源分配。经济发展:人口金字塔还可用于预测未来的劳动力和老龄人口比例。这对于制定长期经济发展战略和社会保障政策至关重要。健康规划:了解人口的年龄结构可以帮助卫生部门预测未来对医疗服务的需求,尤其是对于老年人口的医疗需求。教育规划:人口金字塔有助于规划未来的教育需求。例如,底部宽广的金字塔可能需要更多的学校和教育资源。总体而言,人口金字塔图是一个强大的工具,可以帮助决策者和研究人员更好地理解人口的动态变化,从而制定更有效的政策和规划。: p9 x( Z$ `8 Y* }2 D( ~
绘图函数收藏、点赞=学会clc;clear;close all;T=readtable('People.xls','VariableNamingRule', 'preserve');data=table2array(T(:,2:3));value=data./sum(data);male=-value(:,1);female=value(:,2);colors=jet(size(data,1));x=1:size(data,1);figure('Position',[476 144 655 722],'Color','w')hold onfor i = 1:size(data,1) hBar1=barh(x(i),male(i),'EdgeColor','k','FaceColor',colors(i,:)); hBar2=barh(x(i),female(i),'EdgeColor','k','FaceColor',colors(i,:));endxline(0,'color',[1,1,1],'Alpha',1,'LineWidth',1.2)loc=max(value);text(-loc(1)/2,size(data,1),'male','FontSize',16,'FontName','times new Roman')text(loc(2)/2,size(data,1),'female','FontSize',16,'FontName','times new Roman')
, I7 e9 M$ f P1 Q, k) {5 {colormap(colors)cBar=colorbar;caxis([0,100]);cBar.FontName='Times New Roman';cBar.FontSize=16;cBar.Box='off';cBar.TickDirection = 'both';cBar.LineWidth=1;cBar.Limits = [0, 100];cBar.Ticks =0:10:100;currentPosition = cBar.Position; newWidth = 0.03; % 新的宽度值cBar.Position = [currentPosition(1)+0.05 currentPosition(2) newWidth currentPosition(4)];cBar.TickLabels = arrayfun(@(x) num2str(x, '%.0f'),[0:10:100], 'UniformOutput', false);title(cBar,'Age','Fontsize',16,'fontname','Times New Roman')disp(char([20844 20247 21495 58 22909 29609 30340 77 97 116 108 97 98]))ax = gca;ax.XTickLabel = arrayfun(@(x) num2str(abs(x)*100, '%.2f'), ax.XTick, 'UniformOutput', false);ax.YTick = [1:size(data, 1)];ax.LineWidth=1.2;ax.Title.String='2022 Population Structure Chart';ax.XLabel.String='Proportion(%)';ax.XAxis.TickDirection='out';ax.FontName='Times New Roman';ax.FontSize=16;yt = yticks;ax.YAxis.Visible = 0;text(ones(size(yt))*min(xlim)-0.01*diff(double(xlim)), yt, T{:,1}, 'Horiz','right', 'Vert','middle','fontsize',14,'FontName','Times New Roman')' A& R; X, }: }
fq23loxx2ff64017642322.png
: Z7 ]" U1 f0 E- x# m+ U1 R6 R; N1 ^+ M1 Z! y5 G
5vawx3mmpld64017642422.png
* `( u/ `0 ^1 N& L; l, n
clc;clear;close all;T=readtable('People.xls','VariableNamingRule', 'preserve');data=table2array(T(:,2:3));value=data./sum(data);male=-value(:,1);female=value(:,2);colors=spring(size(data,1));x=1:size(data,1);figure('Position',[476 144 655 722],'Color','w')hold onfor i = 1:size(data,1) hBar1=barh(x(i),male(i),'EdgeColor','k','FaceColor','b','FaceAlpha',0.5); hBar2=barh(x(i),female(i),'EdgeColor','k','FaceColor','r','FaceAlpha',0.5);endxline(0,'color',[1,1,1],'Alpha',1,'LineWidth',1.2)loc=max(value);text(-loc(1)/2,size(data,1),'male','FontSize',16,'FontName','times new Roman')text(loc(2)/2,size(data,1),'female','FontSize',16,'FontName','times new Roman')disp(char([20844 20247 21495 58 22909 29609 30340 77 97 116 108 97 98]))ax = gca;ax.XTickLabel = arrayfun(@(x) num2str(abs(x)*100, '%.2f'), ax.XTick, 'UniformOutput', false);ax.YTick = [1:size(data, 1)];ax.LineWidth=1.2;ax.Title.String='2022 Population Structure Chart';ax.XLabel.String='Proportion(%)';ax.XAxis.TickDirection='out';ax.FontName='Times New Roman';ax.FontSize=16;yt = yticks;ax.YAxis.Visible = 0;text(ones(size(yt))*min(xlim)-0.01*diff(double(xlim)), yt, T{:,1}, 'Horiz','right', 'Vert','middle','fontsize',14,'FontName','Times New Roman')
* \; t- i; \. B) t: U( C& M1 ~/ `
vztmfp22dup64017642523.png
6 g' J& [" p" z2 _* [1 E% J
- -THE END- -4 o2 D, u0 } b- L) Z6 m( l
4 l) M$ {: {7 R" l* q% }( H' P
源码下载:gitee下载:https://gitee.com/LoveMatlab/population-pyramid
3 u, j* f; w0 z; H: u
3x0ghr1tfj464017642623.png
. q b; J% l& PQQ 群下载:- f+ L2 l% M6 j2 A. j( `3 Y4 A/ l" t
tgfu4izhyos64017642723.png
9 p' t5 K: J( z d3 Y
知识星球(主要是更新代码和资料、欢迎加入和赞助)( S1 j+ P6 {3 ]+ [6 @
8 ^5 r; C) a% s
isu5onizs4z64017642824.png
6 R, I# n4 y9 T6 ?
参考资料:7 @( ?5 |0 Q% t- N# q
【1】https://ww2.mathworks.cn/matlabcentral/answers/2054364-how-to-set-up-a-plot-with-labels-but-no-y-axis-tick-marks?s_tid=srchtitle, t1 L3 O. }; j+ t* X+ S2 K4 n( c! [
/ ^$ o& p- \& i) L n$ W: w
dugpy3w4onn64017642924.gif
, m; l- A; B- M
z4xvkh1rgth64017643024.png
0 b* u9 Z5 h% r ^送书活动
; _$ Y$ }+ N. {* d
b3ofh0lmlbc64017643124.png
4 o0 h; f" m9 P7 ?
acmxggnggqo64017643224.gif
( P' W) B4 I% o; X/ [/ N4 U
) a6 P# O% Y$ a+ I9 Z+ @包邮赠送 「北京理工大学出版社出版社」赞助《R语言统计分析实战》《R语言统计分析实战》通俗易懂,示例丰富,实用性强,特别适合R语言统计分析入门与进阶读者阅读,也适合数据科学领域的其他从业者阅读。另外,《R语言统计分析实战》还适合作为统计分析、机器学习和数据分析等领域的培训用书。 v2 o2 S; o4 x
【抽奖方式及满足条件】:1.关注「好玩的MATLAB 」公众号和视频号9 j; Q: F8 N$ L/ |0 p
m0vav5vmo1p64017643324.jpg
9 d7 a w2 `/ R. h' y0 }" M, Q9 A6 \
2.给本文点【赞】+【在看】;
) p3 @) y% n+ d3 B% ]' [3.留言区评论点赞最多的前3名。9 q& p; ?+ O) Q5 p6 C5 o) T0 I
4.本活动只针对从未获过奖的同学,之前获过奖的小伙伴,不用参加。, S+ g& @6 d5 d8 Y# b8 ?, X
同时满足上述4个条件的读者朋友,包邮赠送一本。
% x* T4 e) v' O$ N/ M$ P【开奖时间】:2023年 12月4日夜晚8点
1 W5 H, }* `, D$ j; X8 m. {【领奖方式】:在开奖时加小编私人微信:idmatlab
( g* R4 O+ B. ^0 y% _4 s扫一扫加管理员微信2 e; J" m. ~ o/ s' t! e0 U* Q
113klovvs3v64017643424.png
+ Y4 e! x2 L g1 b9 J ~
kkuksmoexcc64017643524.jpg
|