วิธีสร้างปิรามิดประชากรใน python
ปิระมิดประชากร คือกราฟที่แสดงการกระจายอายุและเพศของประชากรที่กำหนด ข้อมูลนี้มีประโยชน์สำหรับการทำความเข้าใจองค์ประกอบของประชากรและแนวโน้มการเติบโตของประชากร
บทช่วยสอนนี้จะอธิบายวิธีสร้างปิรามิดประชากรต่อไปนี้ใน Python:
ปิรามิดอายุใน Python
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ที่แสดงจำนวนประชากรชายและหญิงทั้งหมดตามกลุ่มอายุสำหรับประเทศที่ระบุ:
#import libraries import numpy as np import pandas as pd import matplotlib.pyplot as plt #create dataframe df = pd.DataFrame({'Age': ['0-9','10-19','20-29','30-39','40-49','50-59','60 -69','70-79','80-89','90+'], 'Male': [9000, 14000, 22000, 26000, 34000, 32000, 29000, 22000, 14000, 3000], 'Female': [8000, 15000, 19000, 28000, 35000, 34000, 28000, 24000, 17000, 5000]}) #view dataframe df Age Male Female 0 0-9 9000 8000 1 10-19 14000 15000 2 20-29 22000 19000 3 30-39 26000 28000 4 40-49 34000 35000 5 50-59 32000 34000 6 60-69 29000 28000 7 70-79 22000 24000 8 80-89 14000 17000 9 90+ 3000 5000
เราสามารถใช้โค้ดต่อไปนี้เพื่อสร้างปิรามิดประชากรสำหรับข้อมูล:
#define x and y limits y = range(0, len(df)) x_male = df['Male'] x_female = df['Female'] #define plot parameters fig, axes = plt.subplots(ncols=2, sharey=True, figsize=(9, 6)) #specify background color and plot title fig.patch.set_facecolor('xkcd:light grey') plt.figtext(.5,.9,"Population Pyramid", fontsize=15, ha='center') #define male and female bars axes[0].barh(y, x_male, align='center', color='royalblue') axes[0].set(title='Males') axes[1].barh(y, x_female, align='center', color='lightpink') axes[1].set(title='Females') #adjust grid parameters and specify labels for y-axis axes[1].grid() axes[0].set(yticks=y, yticklabels=df['Age']) axes[0].invert_xaxis() axes[0].grid() #displayplot plt.show()
กราฟแสดงให้เห็นว่าการกระจายตัวของชายและหญิงค่อนข้างสมมาตร โดยประชากรส่วนใหญ่จัดอยู่ในวงเล็บวัยกลางคน เพียงดูกราฟนี้ เราก็สามารถเข้าใจข้อมูลประชากรของประเทศนี้ได้ดี
โปรดทราบว่าคุณสามารถปรับสีของพื้นหลังการลงจุดและแต่ละแท่งได้โดยการระบุสีใน รายการสี matplotlib
ตัวอย่างเช่น เราสามารถระบุ “hotpink” และ “dodgerblue” เพื่อใช้กับพื้นหลัง “beige” ได้:
fig.patch.set_facecolor('xkcd: beige ')
axes[0].barh(y, x_male, align='center', color=' dodgerblue ')
axes[1].barh(y, x_female, align='center', color=' hotpink ')
plt.show()
อย่าลังเลที่จะเปลี่ยนชุดสีตามสีที่เหมาะกับคุณที่สุด