首页私人日誌怎么使用Python对疫情数据进行可视化分析

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

admin 10-15 13:52 322次浏览


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


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


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


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


  功能函数


  读取文件


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

  更换列名,便于查看


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

  

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


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

  全球疫情趋势


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

  筛选出中国的数据


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


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


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

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


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

  确诊人数排名前15的国家

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

  

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


  set_global_opts是设置格式:

  中国确诊人数前十的省


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

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

  热力图


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

  

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


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

  

全球疫情频率直方图


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

  其他图


  陕西确诊病例饼图

  陕西省确诊病例数据分布

  中国治愈病例玫瑰图

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

怎么使用Python对疫情数据进行可视化分析
Golang源码分析可视化 Helm:kubernetes包管理工具
相关内容