资讯专栏INFORMATION COLUMN

怎么使用Python对疫情数据进行可视化分析

89542767 / 465人阅读


  小编写这篇文章的主要目的就是,站在当下的一个角度,对全球疫情情况进行一个数据分析,,包括确诊、治愈、死亡、时间、国家、地区等这些数据,针对这些数据,进行相关的一些可视化数据分析,下面小编就给大家做出一个详细的解答。


  本项目主要通过python的matplotlib pandas pyecharts等库对疫情数据进行可视化分析。


  本数据集来源于kaggle竞赛的开源数据集,数据集地址


  本数据集主要涉及到全球疫情统计,包括确诊、治愈、死亡、时间、国家、地区等信息


  功能函数


  读取文件


   df=pd.read_csv(r'C:\Users\Hasee\Desktop/covid_19_data.csv')
  df.head()

01.png

  更换列名,便于查看


  cols=['序号','日期','省/州','国家','最近更新','确诊','死亡','治愈']
  df.columns=cols
  df.日期=pd.to_datetime(df.日期)
  df

  02.png

       ##利用groupby按照日期统计确诊死亡治愈病例的总和


  #合并同一天同国家日期
  global_confirm=df.groupby('日期')[['确诊','死亡','治愈']].sum()
  global_confirm

03.png

  全球疫情趋势


  ax=global_confirm.plot(figsize=(12,10),title='全球疫情趋势图')

04.png

  筛选出中国的数据


  利用groupby按照日期统计确诊死亡治愈病例的总和


  global_china=df[df['国家']=='Mainland China'].reset_index()
  global_china_confirm=global_china.groupby('日期')[['确诊','死亡','治愈']].sum().reset_index()


  然后对其进行画图处理,把图绘制成三条线

05.png

  利用groupby按照省统计确诊死亡治愈病例的总和


  global_china=df[df['国家']=='Mainland China'].reset_index()
  global_china_province_confirm=global_china.groupby('省/州')[['确诊','死亡','治愈']].sum().reset_index()
  recovercent=100.*global_china_province_confirm['治愈']/global_china_province_confirm['治愈'].sum()
  labels=['{0}-{1:1.2f}%-{2}'.format(i,j,k)for i,j,k in zip(list(global_china_province_confirm['省/州']),recovercent,list(global_china_province_confirm['治愈']))]
  plt.figure(figsize=(10,10))
  plt.pie(global_china_province_confirm['治愈'],radius=0.3)

06.png

  确诊人数排名前15的国家

   plt.figure(figsize=(16,16))
   plt.barh(list(global_country_confirm_rank.国家)[::-1], list(global_country_confirm_rank.确诊)[::-1])
   plt.title('确诊人数排名前15的国家')
   plt.xlabel('人数(千万)')
   plt.ylabel('国家')

  07.png

      这里用pyecharts库画图,绘制的玫瑰图,rosetype


  set_global_opts是设置格式:

08.png

  中国确诊人数前十的省


   china_confirm=df[df['国家']=="Mainland China"]
  china_latest=china_confirm[china_confirm['日期']==max(china_confirm['日期'])]
  words=WordCloud()
  words.add('确诊人数',[tuple(dic)for dic in zip(list(china_latest['省/州']),list(china_latest['确诊']))],word_size_range=[20,100])

09.png  

       区域图


   china_death=df[df['国家']=="Mainland China"]
  china_death_latest=china_death[china_death['日期']==max(china_death['日期'])]
  china_death_latest=china_death_latest.groupby('省/州')[['确诊','死亡']].max().reset_index()
  geo=Map()
  geo.add("中国死亡病例分布",[list(z)for z in zip(china_death_prodic,list(china_death_latest['死亡']))],"china")
  geo.set_global_opts(title_opts=opts.TitleOpts(title="全国各省死亡病例数据分布"),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,
  pieces=[
  {"min":1500,"label":'>10000人',"color":"#6F171F"},
  {"min":500,"max":15000,"label":'500-1000人',"color":"#C92C34"},
  {"min":100,"max":499,"label":'100-499人',"color":"#E35B52"},
  {"min":10,"max":99,"label":'10-99人',"color":"#F39E86"},
  {"min":1,"max":9,"label":'1-9人',"color":"#FDEBD0"}]))
  geo.render_notebook()

10.png

  热力图


  geo=Geo()
  geo.add_schema(maptype="china")
  geo.add("中国死亡病例分布",[list(dic)for dic in zip(china_death_prodic,list(china_death_latest['死亡']))],type_=GeoType.EFFECT_SCATTER)
  geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(),title_opts=opts.TitleOpts(title="全国各省死亡病例数据分布"))
  geo.render_notebook()

  12.png

      全球死亡人数地理分布情况


  map=Map()
  map.set_global_opts(title_opts=opts.TitleOpts(title="全球死亡人数地理分布情况"),visualmap_opts=opts.VisualMapOpts(is_piecewise=True,
  pieces=[
  {"min":100001,"label":'>100001人',"color":"#6F171F"},
  {"min":10001,"max":100000,"label":'10001-100000人',"color":"#C92C34"},
  {"min":1001,"max":10000,"label":'1001-10000人',"color":"#E35B52"},
  {"min":101,"max":10000,"label":'101-10000人',"color":"#F39E86"},
  {"min":1,"max":100,"label":'1-100人',"color":"#FDEBD0"}]))
  map.add("全球死亡人数地理分布情况",[list(z)for z in zip(global_death_n,list(global_death['死亡']))],"world")
  map.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  map.render_notebook()

  13.png

       全球疫情频率直方图


   global_confirm.plot.hist(alpha=0.5)
  plt.xlabel('人数(千万)')
  plt.ylabel('出现频率')
  plt.title('全球疫情频率直方图')

14.png

  其他图


  陕西确诊病例饼图

15.png

  陕西省确诊病例数据分布

16.png

  中国治愈病例玫瑰图

17.png

  到此为止,小编这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127932.html

相关文章

  • python综合程序设计——做一个视化大屏

    摘要:完成可视化热搜榜和国内疫情新增图,提高学生的编程能力和分析问题解决问题的能力。下图为百度微博知乎三大平台的热搜词频统计图。后续我会补上薄弱项,为争取做一名全栈技术人员而奋斗。 ...

    _Dreams 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • 面向4亿肝病人群,这才是医疗直播的正确打开方式

    摘要:年底,肝胆相照接入保利威直播,肝病行业学术会议进入线上同步直播时代,也是行业中首个建立专业直播团队的平台。疫情期间,肝胆相照平台直播场次较往年成倍数增长,开展多场公益主题直播,包括指导新冠疫情期间患者居家用药如何         最近被一个个惊人数字击中神经——   我国现存乙肝病毒感染者约有7000万例 全球新冠肺炎确诊病例超2800万 ...

    不知名网友 评论0 收藏0
  • 网络安全态势视化

    摘要:安全态势可视化系统的目的是生成网络安全综合态势图,以多视图多角度多尺度的方式与用户进行交互。可以看到,黑客攻击是无处不在,无时不有的,世界互联网的安全态势并不如我们印象中那么隐蔽和少见。 导语 网络态势可视化技术作为一项新技术,是网络安全态势感知与可视化技术的结合,将网络中蕴涵的态势状况通过可视化图形方式展示给用户,并借助于人在图形图像方面强大的处理能力,实现对网络异常行为的分析和检测...

    testHs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<