新冠疫情可视化

时间:2024-04-10 08:49:14

各州的疫情数据分析

1. 大洋洲
2. 北美洲

3. 亚洲

大洋洲疫情情况

1.确诊人数箱线图(附件1)
新冠疫情可视化
大洋洲存在一个国家的确诊人数远远超过大洋洲其他国家
2. 死亡人数柱状图(附件2)
新冠疫情可视化
大洋洲的国家中澳大利亚与新西兰有少量的死亡人数外其他国家无一人死亡。
3. 治愈人数柱状图(附件3)
新冠疫情可视化
大洋洲国家中大部分新冠病毒感染者已治愈。
4. 治愈增量柱状图(附件4)
新冠疫情可视化
在某一天大洋洲所有国家治愈新冠病毒的人数为90.
5.治愈,死亡,现有确诊总数饼图(附件5)
新冠疫情可视化
大洋洲国家所有新冠病毒感染者中近90%的人员已经治愈新冠病毒, 近10%的人正在接受治疗,只有不到1%的人死亡。
6.各州确诊严重地区词云统计图(附件6)
新冠疫情可视化
澳大利亚与新西兰在大洋洲的网络上被主要提及。
附件(源代码)

附件1
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data = [11, 21, 19, 62, 1534, 8386]
df = pd.DataFrame(data)
df.plot.box(title=“大洋洲箱线图”)
plt.grid(linestyle="–", alpha=0.3)
plt.show()

附件2
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘大洋洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[2]
#for x,y in death.items():
#plt.text(x,y,’%y’,fontsize=15,verticalalignment=“top”,horizontalalignment=“right”)
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“死亡人数”) # 指定y轴描述信息
plt.title(“大洋洲死亡人数柱状图”) # 指定图表描述信息
plt.ylim(0, 3) # 指定Y轴的高度
plt.legend()
plt.show()
**

附件3
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘北美洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[3]
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“治愈人数”) # 指定y轴描述信息
plt.title(“大洋洲治愈人数柱状图”) # 指定图表描述信息
plt.ylim(0, 7) # 指定Y轴的高度
plt.legend()
plt.show()

附件4
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘大洋洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[5]
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“新增确诊人数”) # 指定y轴描述信息
plt.title(“大洋洲新增样例”) # 指定图表描述信息
plt.ylim(0, 3) # 指定Y轴的高度
plt.legend()
plt.show()

附件5
import matplotlib
from matplotlib import pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #解决中文乱码
plt.figure(figsize=(6,9)) #调节图形大小
labels = [u’治愈’,u’死亡’,u’现有确诊’] #定义标签
sizes = [9017,90,1088] #每块值
colors = [‘yellowgreen’,‘red’,‘lightskyblue’] #每块颜色定义
explode = (0,0,0) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes,
explode=explode,
labels=labels,
colors=colors,
autopct = ‘%3.2f%%’, #数值保留固定小数位
shadow = False, #无阴影设置
startangle =90, #逆时针起始角度设置
pctdistance = 0.9) #数值距圆心半径倍数距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部的文本
#x,y轴刻度设置一致,保证饼图为圆形
for t in text1:
t.set_size(30)
for t in text2:
t.set_size(25)
plt.axis(‘equal’)
matplotlib.rcParams.update({‘font.size’: 15})
plt.legend()
plt.title(“大洋洲饼图”,fontdict={‘weight’:‘normal’,‘size’: 30})
plt.show()

附件6
import openpyxl
from wordcloud import WordCloud
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘大洋洲’]
num={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
num[row[0]]=float(row[1])
pass
wordcloud=WordCloud(font_path=“C:/Windows/Fonts/simkai”,
background_color=“white”,
width=1920,height=1080)
wordcloud.generate_from_frequencies(num)
wordcloud.to_file(‘wordcloud.png’)

**

北美洲疫情情况

**
1.确诊人数箱线图(附件1)
新冠疫情可视化
北美洲疫情最严重地区与最微弱地区两者偏差很大,具有较大差值
2.治愈、死亡、现有确诊总数饼图(附件2)
新冠疫情可视化
现有确诊人数的比例略大于已治愈人数的比例,死亡人数比例偏大,多达5%。
3.疫情区域词云统计图(附件3)
新冠疫情可视化
美国、墨西哥、加拿大疫情严重情况较为突出,其中美国为甚。
4.死亡人数柱状图(附件4)
新冠疫情可视化
美国死亡人数高达13万之多,加拿大墨西哥居2、3位。
5.治愈人数柱状图(附件5)
新冠疫情可视化
美国治愈人数远高于其它北美洲国家,近乎达130万。
6.确诊增量(附件6)
新冠疫情可视化
美国仍然存在大量新增确诊人数,墨西哥的情况同样存在危险因素,其他国家疫情状况相对的得到了一定的抑制。

附件(源代码)

附件1
import openpyxl
import matplotlib.pyplot as plt
import pandas as pd
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
a=[0,0,0,0,0,0,0,0,0,0]
b={}
i=0
wb = openpyxl.load_workbook(‘data.xlsx’)
ws = wb[‘北美洲’]
frequence={}
for row in ws.values:
if row[0]==‘国家’:
pass
else:
b[i]=float(row[1])
i+=1
pass
lenth=len(b)
for i in range(0,lenth):
for j in range(i+1,lenth):
if b[i]<b[j]:
temp=b[i]
b[i]=b[j]
b[j]=temp
pass
pass
i+=1
pass
for i in range(0,10):
a[i]=b[i]
i+=1
pass
df=pd.DataFrame(a)
df.plot.box(title=“北美洲”)
plt.boxplot(a)
plt.grid(linestyle="–", alpha=0.3)
print(a)
plt.show()

附件2
#-- coding: utf-8 --
from matplotlib import pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #解决中文乱码
plt.figure(figsize=(8,9)) #调节图形大小
labels = [u’治愈’,u’死亡’,u’现有确诊’] #定义标签
sizes = [1570521,175648,1748468] #每块值
colors = [‘yellowgreen’,‘red’,‘lightskyblue’] #每块颜色定义
explode = (0,0,0) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes,
explode=explode,
labels=labels,
colors=colors,
autopct = ‘%3.2f%%’, #数值保留固定小数位
shadow = False, #无阴影设置
startangle =90, #逆时针起始角度设置
pctdistance = 0.6) #数值距圆心半径倍数距离
#patches饼图的返回值,texts1饼图外label的文本,texts2饼图内部的文本
#x,y轴刻度设置一致,保证饼图为圆形
for t in text1:
t.set_size(25)
for t in text2:
t.set_size(20)
plt.axis(‘equal’)
plt.title(“北美洲”,fontdict={‘weight’:‘normal’,‘size’: 30})
plt.legend()
plt.show()

附件3
import openpyxl
from wordcloud import WordCloud
wb = openpyxl.load_workbook(‘data.xlsx’)
ws = wb[‘北美洲’]
frequence={}
for row in ws.values:
if row[0]==‘国家’:
pass
else:
frequence[row[0]]=float(row[1])
pass
wordcloud=WordCloud(font_path=“C:/Windows/Fonts/STKAITI.TTF”,
background_color=“white”,
width=1920,height=1080)
wordcloud.generate_from_frequencies(frequence)
wordcloud.to_file(‘wordcloud2.png’)

附件4
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘北美洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[2]
#for x,y in death.items():
#plt.text(x,y,’%y’,fontsize=15,verticalalignment=“top”,horizontalalignment=“right”)
plt.figure(figsize=(12,8))
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“死亡人数”) # 指定y轴描述信息
plt.title(“北美洲死亡人数柱状图”) # 指定图表描述信息
plt.ylim(0, 150000) # 指定Y轴的高度
plt.xlim(0,10)
plt.legend()
plt.show()

附件5
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘北美洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[3]
#for x,y in death.items():
#plt.text(x,y,’%y’,fontsize=15,verticalalignment=“top”,horizontalalignment=“right”)
plt.figure(figsize=(12,8))
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“治愈人数”) # 指定y轴描述信息
plt.title(“北美洲治愈人数柱状图”) # 指定图表描述信息
plt.ylim(0, 1300000) # 指定Y轴的高度
plt.xlim(0,10)
plt.legend()
plt.show()

附件6
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data2.xlsx’)
data1=data[‘北美洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[5]
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“新增确诊人数”) # 指定y轴描述信息
plt.title(“北美洲新增样例”) # 指定图表描述信息
plt.ylim(0, 40000) # 指定Y轴的高度
plt.xlim(0, 10)
plt.legend()
plt.show()

**

亚洲疫情情况

**
1. 确诊人数箱线图(附件1)
2. 死亡人数柱状图(附件2)新冠疫情可视化
由图表可知,在亚洲死亡人数中,死亡人数前十的国家依次为印度,伊朗,土耳其,巴基斯坦,印度尼西亚,伊拉克,孟加拉国,沙特阿拉伯。菲律宾,日本。其中,印度和伊朗的死亡人数远远超过其他国家,其中,印度高达19707人,伊朗高达11571人,是亚洲在此次疫情中死亡人数最严重的两个国家。
3. 治愈人数柱状图(附件3)新冠疫情可视化
由图表可知,在亚洲治愈人数之中,治愈人数前十的国家依次为印度,伊朗,土耳其,沙特阿拉伯,巴基斯坦,卡塔尔,孟加拉国,科威特,新加坡,阿拉伯联合酋长国,其中。印度治愈人数高达425070人,印度的治愈人数是伊朗的2倍,是亚洲治愈人数最多的国家。
4. 确诊增量,死亡增量,治愈增量柱状图(附件4)新冠疫情可视化
由图表可知,在亚洲累计的确诊增量之中,印度累计确诊增量位23272人,位居亚洲第一,远超过亚洲累计确诊增量第二位国家沙特阿拉伯3580人。由此可知,目前印度的疫情仍然还未减缓,在亚洲,印度疫情仍然较为严重,应该加强疫情的防控措施。
5. 治愈,死亡,现有确诊总数饼图(附件5)新冠疫情可视化
由饼状图可知,目前亚洲的治愈人数占比超过一半,占68.6%,但目前确诊人数仍然占29.3%,是一个较大的占比,但幸运的是亚洲的死亡人数比例较小,仅占2.1%。
6. 各州确诊严重地区词云统计图(附件6)新冠疫情可视化
由上图对亚洲确诊人数进行分析绘制成词云,可以得知在亚洲,疫情最严重的国家是印度,其次是伊朗,沙特阿拉伯,巴基斯坦,土耳其等。该图虽没有显示具体的确诊人数或确诊人数占比,但用字体大小向我们更直观的突出了疫情严重的国家。

附件(源代码)
附件1

附件2
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘亚洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[2]
#for x,y in death.items():
#plt.text(x,y,’%y’,fontsize=15,verticalalignment=“top”,horizontalalignment=“right”)
plt.figure(figsize=(12,8))
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“死亡人数”) # 指定y轴描述信息
plt.title(“亚洲死亡人数柱状图”) # 指定图表描述信息
plt.ylim(0, 150000) # 指定Y轴的高度
plt.xlim(0,10)
plt.legend()
plt.show()

附件3
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘亚洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[3]
#for x,y in death.items():
#plt.text(x,y,’%y’,fontsize=15,verticalalignment=“top”,horizontalalignment=“right”)
plt.figure(figsize=(12,8))
x = tuple(death.keys())
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“治愈人数”) # 指定y轴描述信息
plt.title(“亚洲治愈人数柱状图”) # 指定图表描述信息
plt.ylim(0, 1300000) # 指定Y轴的高度
plt.xlim(0,10)
plt.legend()
plt.show()

附件4
import openpyxl
import matplotlib.pyplot as plt
import time
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data.xlsx’)
data1=data[‘亚洲’]
death={}
for row in data1.values:
if row[0]==‘国家’:
pass
else:
death[row[0]]=row[5]
x = tuple(death.keys.header(10))
y = tuple(death.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“新增确诊人数”) # 指定y轴描述信息
plt.title(“亚洲新增样例”) # 指定图表描述信息
plt.ylim(0, 3) # 指定Y轴的高度
plt.legend()
plt.show()

附件5
import pandas as pd
import os
import matplotlib.pyplot as plt
#修改路径到data所在目录下
#读取表格中的数据
data=pd.read_excel(‘data.xlsx’,None)
#设置字体
plt.rcParams[‘font.sans-serif’]=[‘simhei’]
#赋值
data_in=data[‘亚洲’]
data_out=data[‘欧洲’]
in_diag=data_in[‘累计确诊’].sum()
in_died=data_in[‘死亡’].sum()
in_cure=data_in[‘治愈’].sum()
in_now=data_in[‘现有确诊’].sum()
plt.pie([in_diag,in_died,in_cure,in_now],labels=[‘累计确诊’,‘死亡’,‘治愈’,‘现有确诊’],autopct=’%.2f%%’)
plt.title(‘亚洲’)
plt.show()

附件6
import openpyxl
from wordcloud import WordCloud
wordcloud=WordCloud(font_path=“C:/Windows/Fonts/simhei.ttf”,
background_color=“white”,
width=1500,height=1080)
#读取数据
wb=openpyxl.load_workbook(‘data.xlsx’)
#获取工作表
ws=wb[‘亚洲’]
frequency_in={}
for row in ws.values:
if row[0]==‘国家’:
pass
else:
frequency_in[row[0]]=float(row[1])
#根据确诊病例的数目生成词云
wordcloud.generate_from_frequencies(frequency_in)
#保存词云
wordcloud.to_file(‘wordcloud_in.png’)