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

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

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

MATLAB|人口金字塔圖

[復(fù)制鏈接]

193

主題

193

帖子

1532

積分

三級會員

Rank: 3Rank: 3

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

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

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




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

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


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



    送書活動



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

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

  • 回復(fù)

    使用道具 舉報

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

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


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