请选择 进入手机版 | 继续访问电脑版
楼主: casey_c
1909 6

[程序分享] matplotlib/seaborn 绘图实例:医疗数据可视化 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

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

casey_c 发表于 2017-12-26 11:17:22 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币



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

如何下载数据
1) 注册并登陆 "Project Tycho"
2) 前往 1 级数据 ,然后搜索和检索数据
3) 检索条件:geographic level := state; disease outcome := incidence
4) 添加所有 (使用 Ctrl+A (or Cmd+A on Macs) 全选)
5) 并向下滚动到点击此处下载结果为 excel
6) 在 excel 中打开,并导出为 CSV 文件
7) 将所有数据文件放在一个名为data的 notebook 文件夹下


1、导入相关库

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

  6. sb.set_style('white')
复制代码
2、绘制 Polio 小儿麻痹症周发生率热图
  1. polio_data = pd.read_csv('data/POLIO_Incidence_1928-1969_20160304121200.csv', skiprows=2, na_values='-')

  2. polio_years = list(polio_data['YEAR'].unique())
  3. polio_states = polio_data.drop(['YEAR', 'WEEK'], axis=1).columns.values
  4. polio_states = [state.title() for state in polio_states]

  5. polio_data.drop(['WEEK'], axis=1, inplace=True)
  6. polio_data = polio_data.groupby('YEAR').sum()
  7. polio_data = polio_data.transpose().values

  8. plt.figure(figsize=(12, 12))
  9. sb.heatmap(polio_data, cmap='Reds', robust=True,
  10.            xticklabels=[year if year % 5 == 0 or year == max(polio_years) else '' for year in polio_years],
  11.            yticklabels=polio_states)
  12. plt.plot([polio_years.index(1955) + 0.425, polio_years.index(1955) + 0.425],
  13.          [0, 51],
  14.          color='black', lw=1.5)

  15. cax = plt.gcf().axes[-1]
  16. cax.set_yticklabels([10, 20, 30, 40, '50+'])
  17. cax.tick_params(labelsize=12)

  18. plt.xticks(fontsize=12)
  19. plt.yticks(fontsize=12)

  20. plt.text(0, 51.5, 'Polio cases in the United States', fontsize=14)
  21. plt.text(polio_years.index(1955) + 0.15, 51.5, 'Vaccine introduced', fontsize=12, weight='bold')
  22. plt.text(-8, -3, 'Data source: Project Tycho (tycho.pitt.edu) '
  23.          '| Author: Randy Olson (randalolson.com / @randal_olson)',
  24.          fontsize=10)

  25. plt.savefig('polio-cases-heatmap-sequential-colormap.png', bbox_inches='tight')
  26. ;
复制代码
1.jpg


2、对 Measles 麻疹数据进行同样的可视化处理
  1. measles_data = pd.read_csv('data/MEASLES_Incidence_1928-2003_20160304120254.csv', skiprows=2, na_values='-')

  2. measles_years = list(measles_data['YEAR'].unique())
  3. measles_states = measles_data.drop(['YEAR', 'WEEK'], axis=1).columns.values
  4. measles_states = [state.title() for state in measles_states]

  5. measles_data.drop(['WEEK'], axis=1, inplace=True)
  6. measles_data = measles_data.groupby('YEAR').sum()
  7. measles_data = measles_data.transpose().values

  8. plt.figure(figsize=(12, 12))
  9. sb.heatmap(measles_data, cmap='Reds', robust=True,
  10.            xticklabels=[year if year % 10 == 0 else '' for year in measles_years],
  11.            yticklabels=measles_states)
  12. plt.plot([polio_years.index(1963) + 0.425, polio_years.index(1963) + 0.425],
  13.          [0, 51],
  14.          color='black', lw=1.5)

  15. cax = plt.gcf().axes[-1]
  16. cax.set_yticklabels([0, 200, 400, 600, 800, '1,000+'])
  17. cax.tick_params(labelsize=12)

  18. plt.xticks(fontsize=12)
  19. plt.yticks(fontsize=12)

  20. plt.text(0, 51.5, 'Measles cases in the United States', fontsize=14)
  21. plt.text(polio_years.index(1963) + 0.05, 51.5, 'Vaccine introduced', fontsize=12, weight='bold')
  22. plt.text(-14.5, -3, 'Data source: Project Tycho (tycho.pitt.edu) '
  23.          '| Author: Randy Olson (randalolson.com / @randal_olson)',
  24.          fontsize=10)

  25. plt.savefig('measles-cases-heatmap-sequential-colormap.png', bbox_inches='tight')
  26. ;
复制代码
2.jpg


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



二维码

扫码加我 拉你入群

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

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


line_us 发表于 2017-12-28 16:49:30 |显示全部楼层 |坛友微信交流群
支持分享

使用道具

casey_c 发表于 2017-12-29 10:52:08 |显示全部楼层 |坛友微信交流群

使用道具

e0g411k014z 学生认证  发表于 2018-9-12 20:53:14 |显示全部楼层 |坛友微信交流群
xiexie louzhu

使用道具

赫爱番石榴 发表于 2018-12-4 17:52:33 来自手机 |显示全部楼层 |坛友微信交流群
casey_c 发表于 2017-12-26 11:17
以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文

如何下载数据
在哪里看原文呀

使用道具

楚天江南客 学生认证  发表于 2019-1-6 21:15:27 |显示全部楼层 |坛友微信交流群
一图胜千言!可视化是门技术活!

使用道具

307Hotel 发表于 2019-5-10 08:55:33 |显示全部楼层 |坛友微信交流群
非常好

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-18 22:31