電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 108|回復(fù): 0
收起左側(cè)

MATLAB|人口金字塔圖

[復(fù)制鏈接]

193

主題

193

帖子

1532

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
1532
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2023-12-4 03:28:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
點(diǎn)擊上方藍(lán)字和“好玩的MATLAB”一起快樂(lè)玩耍吧!

好玩的matlab
帶你解鎖不一樣的matlab新玩法

今天介紹一下人口金字塔圖,喜歡此推文的小伙伴們記得點(diǎn)贊+關(guān)注+分享!【尊重作者勞動(dòng)成果,轉(zhuǎn)載請(qǐng)注明推文鏈接和公眾號(hào)名】
效果圖




人口金字塔圖介紹人口金字塔圖是一種用于展示人口分布和年齡結(jié)構(gòu)的圖形工具。它的形狀類(lèi)似于金字塔,因此得名。人口金字塔圖通常以男性和女性在不同年齡組的分布為基礎(chǔ),通過(guò)不同的條形圖或直方圖展示出人口的年齡和性別數(shù)量或者占比分布情況。概念:形狀:人口金字塔圖的形狀反映了不同年齡組人口的相對(duì)數(shù)量或者占比情況。通常,底部寬度代表年輕人口數(shù)量或者占比,而逐漸變窄的上半部分代表年長(zhǎng)人口數(shù)量或者占比。分布:左側(cè)表示男性,右側(cè)表示女性。各個(gè)年齡層次上的橫條的長(zhǎng)度表示該年齡組的人口數(shù)量或者占比。作用和用途:人口結(jié)構(gòu)分析:人口金字塔圖是分析人口年齡和性別結(jié)構(gòu)的重要工具。它可以顯示一個(gè)國(guó)家或地區(qū)不同年齡組的相對(duì)人口數(shù)量或者占比,有助于了解人口的組成和分布情況。社會(huì)規(guī)劃:政府和社會(huì)規(guī)劃者可以使用人口金字塔來(lái)制定相關(guān)政策。例如,一個(gè)底部寬廣的金字塔可能表示出生率高,政府可能需要關(guān)注教育、醫(yī)療等方面的資源分配。經(jīng)濟(jì)發(fā)展:人口金字塔還可用于預(yù)測(cè)未來(lái)的勞動(dòng)力和老齡人口比例。這對(duì)于制定長(zhǎng)期經(jīng)濟(jì)發(fā)展戰(zhàn)略和社會(huì)保障政策至關(guān)重要。健康規(guī)劃:了解人口的年齡結(jié)構(gòu)可以幫助衛(wèi)生部門(mén)預(yù)測(cè)未來(lái)對(duì)醫(yī)療服務(wù)的需求,尤其是對(duì)于老年人口的醫(yī)療需求。教育規(guī)劃:人口金字塔有助于規(guī)劃未來(lái)的教育需求。例如,底部寬廣的金字塔可能需要更多的學(xué)校和教育資源?傮w而言,人口金字塔圖是一個(gè)強(qiáng)大的工具,可以幫助決策者和研究人員更好地理解人口的動(dòng)態(tài)變化,從而制定更有效的政策和規(guī)劃。
繪圖函數(shù)收藏、點(diǎn)贊=學(xué)會(huì)
  • 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')
    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')



  • 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')

    - -THE END- -

    源碼下載:gitee下載:https://gitee.com/LoveMatlab/population-pyramid

    QQ 群下載:

    知識(shí)星球(主要是更新代碼和資料、歡迎加入和贊助)


    參考資料:
    【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



    送書(shū)活動(dòng)



    包郵贈(zèng)送 北京理工大學(xué)出版社出版社贊助《R語(yǔ)言統(tǒng)計(jì)分析實(shí)戰(zhàn)》《R語(yǔ)言統(tǒng)計(jì)分析實(shí)戰(zhàn)》通俗易懂,示例豐富,實(shí)用性強(qiáng),特別適合R語(yǔ)言統(tǒng)計(jì)分析入門(mén)與進(jìn)階讀者閱讀,也適合數(shù)據(jù)科學(xué)領(lǐng)域的其他從業(yè)者閱讀。另外,《R語(yǔ)言統(tǒng)計(jì)分析實(shí)戰(zhàn)》還適合作為統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)和數(shù)據(jù)分析等領(lǐng)域的培訓(xùn)用書(shū)。
    【抽獎(jiǎng)方式及滿足條件】:1.關(guān)注「好玩的MATLAB 」公眾號(hào)和視頻號(hào)

    2.給本文點(diǎn)【】+【在看】;
    3.留言區(qū)評(píng)論點(diǎn)贊最多的前3名。
    4.本活動(dòng)只針對(duì)從未獲過(guò)獎(jiǎng)的同學(xué),之前獲過(guò)獎(jiǎng)的小伙伴,不用參加。
    同時(shí)滿足上述4個(gè)條件的讀者朋友,包郵贈(zèng)送一本。
    【開(kāi)獎(jiǎng)時(shí)間】:2023年 12月4日夜晚8點(diǎn)
    【領(lǐng)獎(jiǎng)方式】:在開(kāi)獎(jiǎng)時(shí)加小編私人微信:idmatlab
    掃一掃加管理員微信

  • 發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表