楼主: casey_c
1869 4

[程序分享] 人口金字塔图的一些弊端 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1003
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

楼主
casey_c 发表于 2017-11-24 10:26:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币



以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文


该 notebook 提供了本节使用的方法和代码:Rethinking the population pyramidhttp://www.randalolson.com/2015/ ... population-pyramid/,来自 Randal S. Olson http://www.randalolson.com/


  1. %matplotlib inline
  2. import matplotlib.pyplot as plt
  3. import pandas as pd
  4. import numpy as np

  5. #  这是作者自定义的大部分绘图格式样式
  6. plt.style.use('https://gist.githubusercontent.com/rhiever
  7.               /d0a7332fe0beebfdc3d5/raw
  8.               /205e477cf231330fe2f265070f7c37982fd3130c
  9.               /tableau10.mplstyle')

  10. age_gender_data = pd.read_csv('http://www.randalolson.com/wp-content
  11.                               /uploads/us-age-gender-breakdown.csv')
  12. age_gender_data.head()
复制代码
1.jpg

1) 因变量不在 x 轴上

  1. fig = plt.figure(figsize=(15, 7))
  2. ax1 = fig.add_subplot(111)

  3. for (i, row) in age_gender_data.iterrows():
  4.     plt.bar([i, i], [row['Females_2010'], -row['Males_2010']],
  5.             color=['#CC6699', '#008AB8'], width=0.8, align='center',
  6.             edgecolor='none')
  7.    
  8. plt.xlim(-0.6, 20.6)
  9. plt.ylim(-12.1e6, 12.1e6)
  10. #plt.grid(False, axis='x')
  11. plt.xticks(np.arange(0, 21), age_gender_data['Age_Range'], fontsize=11)
  12. plt.yticks(np.arange(-12e6, 13e6, 2e6),
  13.            ['{}m'.format(int(abs(x) / 1e6))
  14.             if x != 0 else 0 for x in np.arange(-12e6, 13e6, 2e6)])
  15. plt.xlabel('Age group')
  16. plt.ylabel('Number of people (millions)')

  17. plt.savefig('pop_pyramid_rotated.pdf')
  18. ;
复制代码
2.jpg

2) 无法直观比较两个类
  1. fig = plt.figure(figsize=(15, 7))
  2. ax1 = fig.add_subplot(111)

  3. for (i, row) in age_gender_data.iterrows():
  4.     plt.bar([i - 0.2, i + 0.2], [row['Females_2010'], row['Males_2010']],
  5.             color=['#CC6699', '#008AB8'], width=0.4, align='center', edgecolor='none')
  6.    
  7. plt.xlim(-0.6, 20.6)
  8. plt.xticks(range(0, 21), age_gender_data['Age_Range'], fontsize=11)
  9. plt.grid(False, axis='x')
  10. plt.yticks(np.arange(0, 13e6, 1e6),
  11.            ['{}m'.format(int(x / 1e6)) if x > 0 else 0 for x in np.arange(0, 13e6, 1e6)])
  12. plt.xlabel('Age group')
  13. plt.ylabel('Number of people (millions)')

  14. plt.savefig('pop_pyramid_grouped.pdf')
  15. ;
复制代码

以上内容转自 数析学院,如需完整内容可以直接查看原文

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:金字塔图 金字塔 Matplotlib Population Rethinking

沙发
minixi 发表于 2017-11-24 11:42:01

藤椅
飞天玄舞6 在职认证  发表于 2017-11-24 12:35:46

板凳
eeabcde 发表于 2017-11-25 22:07:31
[victory]

报纸
casey_c 发表于 2017-11-28 10:25:03

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-24 04:50