新冠疫情可视化(7月7日,7月8日)

各州的疫情数据分析

1. 大洋洲相关疫情数据分析
2. 北美洲相关疫情分析

3. 亚洲相关疫情分析
4.南美洲相关疫情分析
5.非洲相关疫情分析
6.欧洲相关疫情分析

大洋洲疫情情况

1.确诊人数箱线图(附件1)
用列表表示大洋洲各国的确诊人数,将列表转为一个DataFrame类型的数据,设置列表名为大洋洲箱线图,使用plot函数对其进行绘制展现。大洋洲确诊人数箱线图
简单分析:
由上图进行分析,我们可以得知,大洋洲中有一个国家的确诊人数遥遥领先其他各国,在剩余国家中还有一个确诊人数较大的国家以为,其余国家都相互接近并接近0。

2. 死亡人数柱状图(附件2)
读取“大洋洲”表中各国的死亡人数,设置行名为澳大利亚,新西兰,法属波利尼西亚,斐济,新喀里多尼亚,巴布亚新几内亚,将列名设置为“死亡人数”,使用plot函数对其进行绘制展现。大洋洲死亡人数柱状图
简单分析:
由上图进行分析,我们可以得知,各大洲死亡人数排行依次为:澳大利亚,新西兰,法属波利尼西亚,斐济,新喀里多尼亚,巴布亚新几内亚。其中,澳大利亚死亡人数最多,新西兰其次,而其他国家因为确诊数量少的原因无死亡人数。

3. 治愈人数柱状图(附件3)
读取“大洋洲”表中各国的治愈人数,设置行名为澳大利亚,新西兰,法属波利尼西亚,斐济,新喀里多尼亚,巴布亚新几内亚,将列名设置为“治愈人数”,使用plot函数对其进行绘制展现。大洋洲治愈人数柱状图
简单分析:
由上图进行分析,我们可以得知,大洋洲各国治愈人数排行依次为:澳大利亚,新西兰,法属波利尼西亚,斐济,新喀里多尼亚,巴布亚新几内亚。其中,澳大利亚治愈人数最多,新西兰的治愈人数紧随其后,而法属波利尼西亚,斐济,新喀里多尼亚和巴布亚新几内亚由于确诊人数基数较少,治愈人数也较少。

4. 治愈增量柱状图(附件4)
读取“大洋洲”表中各国的新增确诊人数,设置行名为澳大利亚,新西兰,法属波利尼西亚,斐济,新喀里多尼亚,巴布亚新几内亚,将列名设置为“新增确诊人数”,使用plot函数对其进行绘制展现。大洋洲新增样例
简单分析:
由上图我们可以得知,大洋洲现有确诊增量数量较前几月少了很多,可见大洋洲的疫情防控措施和相关的医疗救治体系取得了很大的成果。

5.治愈,死亡,现有确诊总数饼图(附件5)
用列表表示大洋洲各国的确诊人数之和,死亡人数之和与治愈人数之和,定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为大洋洲饼图,使用plot函数对其进行绘制展现。大洋洲现有确诊死亡和治愈病例
简单分析:
由上图我们可以看到现阶段大洋洲内部大致的疫情情况。疫情在大洋洲蔓延缓慢,累计确诊数量少,但是死亡人数所占比例极小,治愈人数占了大多数,且现有确诊数量只占较小一部分。可见,在疫情蔓延到大洋洲后,大洋洲采取的一系列防控措施来应对疫情的到来。

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)
用列表表示北美洲各国的确诊人数,之后将列表转为一个DataFrame类型的数据,其中设置列表名为北美洲箱线图,最后使用plot函数对其进行绘制展现。确诊人数箱线图
对上图进行分析,我们不难得知北美洲疫情最严重地区与最微弱地区两者偏差很大,具有较大差值。存在一个国家的确诊人数远远大于其他国家的确诊人数的情况。还可以看出大多数国家确诊人数相近,偏差较小。
2.治愈、死亡、现有确诊总数饼图(附件2)
对装载数据的excel表格预先处理,得出北美洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为北美洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最后使用plot函数对其进行绘制展现。
现有确诊人数的比例略大于已治愈人数的比例,都近于50%。死亡人数比例偏大,多达5%,可见北美洲的疫情局势不容乐观。
3.疫情区域词云统计图(附件3)
导入python模块中的wordcloud模块,openpyxl模块
之后运用wordcloud导入字体文件,设置背景颜色、宽度、高度,最后根据各自比例导出成呈png格式的词云。

美国、墨西哥、加拿大疫情严重情况较为突出,其中美国为甚。
由上图对北美洲确诊人群进行分析绘制成词云,可以得知在北美洲这个地区,美国、墨西哥、加拿大疫情严重情况最为突出,其中美国为甚,其次为危地马拉、多米尼加、巴拿马、洪都拉斯、哥斯达黎加等,其中圣皮埃尔、安圭拉、圣巴泰勒地区疫情情况最不明显。
与之前绘制的图像相比,该图表达直观,重点清晰突出。

4.死亡人数柱状图(附件4)
读取“北美洲”表中各国的死亡人数,设置行名为美国,墨西哥,加拿大,危地马拉,多米尼加,巴拿马,洪都拉斯,萨尔瓦多,海地,将列名设置为“死亡人数”,最后使用plot函数对其进行绘制展现。在这里插入图片描述
由上图进行分析,我们可以得知,各个国家死亡人数排行依次为:美国,墨西哥,加拿大,危地马拉,多米尼加,巴拿马,洪都拉斯,萨尔瓦多,海地。其中,美国死亡人数最多,将近于140万人数,同时也远远高于居于第二位和第三位的墨西哥和加拿大,一方面是因为人口基数较大,一方面也反映了疫情局势刻不容缓。萨尔瓦多、海地疫情状况较良好。
5.治愈人数柱状图(附件5)
读取“北美洲”表中各国的治愈人数,设置行名为美国,墨西哥,加拿大,多米尼加,巴拿马,萨尔瓦多,危地马拉,洪都拉斯,古巴,哥斯达黎加,将列名设置为“治愈人数”,最后使用plot函数对其进行绘制展现。在这里插入图片描述
由上图进行分析,我们可以得知,各个国家治愈人数排行依次为:美国,墨西哥,加拿大,多米尼加,巴拿马,萨尔瓦多,危地马拉,洪都拉斯,古巴,哥斯达黎加。其中,美国治愈人数最多,将近于130万,同时也远远高于居于第二位和第三位的墨西哥和加拿大。跟死亡人数相似的分布趋势,很大程度是因为美国、墨西哥、加拿大的人口基数较大,导致在相似的比例下,治愈人数与死亡人数排名会处于不可撼动的相同的位置上。但同时也不难看出,古巴和哥斯达黎加在没有出现在死亡人数的前十的同时,出现于北美洲治愈人数的前十排名中,说明这两个国家在应对疫情的措施和决断方面上可圈可点,取得了良好的效果。
6.确诊增量(附件6)
读取“北美洲”表中各国的新增确诊人数,设置行名为美国,墨西哥,危地马拉,巴拿马,洪都拉斯,哥斯达黎加,萨尔瓦多,加拿大,海地,牙买加,将列名设置为“新增确诊人数”,最后使用plot函数对其进行绘制展现。在这里插入图片描述
由上图进行分析,我们可以得知,各个国家新增确诊人数排行依次为:美国,墨西哥,危地马拉,巴拿马,洪都拉斯,哥斯达黎加,萨尔瓦多,加拿大,海地,牙买加。美国仍然存在大量新增确诊人数,墨西哥的情况同样存在危险因素,其他国家疫情状况相对的得到了一定的抑制。其中,加拿大的排名出乎意料,其突出表现出来的是加拿大在对本次疫情的抑制上取得了相对其他国家来说较为明显的抑制,得到了不错的结果。牙买加新增确诊人数小于10。

附件(源代码)

附件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)

制作简述:
用列表表示亚洲各国的确诊人数,之后将列表转为一个DataFrame类型的数据,其中设置列表名为北美洲箱线图,最后使用plot函数对其进行绘制展现。
分析:
由确诊人数的箱线图,我们可以看到亚洲确诊人数最多的国家和最少的国家相差较大,其中。确诊人数最多的国家接近250000人,而确诊人数最少的国家还不到50000人。同时由中位线可知,各个国家确诊人数大多数是高确诊人数,少部分是低确诊人数。

2. 死亡人数柱状图(附件2)
制作简述:
读取“亚洲”表中各国的死亡人数,设置行名为印度,伊朗,土耳其,巴基斯坦,印度尼西亚,伊拉克,孟加拉国,沙特阿拉伯,菲律宾,日本将列名设置为“死亡人数”,最后使用plot函数对其进行绘制展现。
分析:
由图表可知,在亚洲死亡人数中,死亡人数前十的国家依次为印度,伊朗,土耳其,巴基斯坦,印度尼西亚,伊拉克,孟加拉国,沙特阿拉伯。菲律宾,日本。其中,印度和伊朗的死亡人数远远超过其他国家,其中,印度高达19707人,伊朗高达11571人,是亚洲在此次疫情中死亡人数最严重的两个国家。

3. 治愈人数柱状图(附件3)在这里插入图片描述
制作简述:
读取“亚洲”表中各国的治愈人数,设置行名为印度,伊朗,土耳其,沙特阿拉伯,巴基斯坦,卡塔尔,孟加拉国,科威特,新加坡,阿拉伯联合酋长国将列名设置为“治愈人数”,最后使用plot函数对其进行绘制展现。
分析:
由图表可知,在亚洲治愈人数之中,治愈人数前十的国家依次为印度,伊朗,土耳其,沙特阿拉伯,巴基斯坦,卡塔尔,孟加拉国,科威特,新加坡,阿拉伯联合酋长国,其中。印度治愈人数高达425070人,印度的治愈人数是伊朗的2倍,是亚洲治愈人数最多的国家。

4. 确诊增量,死亡增量,治愈增量柱状图(附件4)
制作简述:
读取“亚洲”表中各国的新增确诊人数,设置行名为印度,沙特阿拉伯,巴基斯坦,孟加拉国,伊朗,菲律宾,伊拉克,印度尼西亚,哈萨克斯坦,以色列。将列名设置为“新增确诊人数”,最后使用plot函数对其进行绘制展现。
分析:
由图表可知,在亚洲累计的确诊增量之中,印度累计确诊增量位23272人,位居亚洲第一,远超过亚洲累计确诊增量第二位国家沙特阿拉伯3580人。由此可知,目前印度的疫情仍然还未减缓,在亚洲,印度疫情仍然较为严重,应该加强疫情的防控措施。
5. 治愈,死亡,现有确诊总数饼图(附件5)在这里插入图片描述
制作简述:
对装载数据的excel表格预先处理,得出亚洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为亚洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最后使用plot函数对其进行绘制展现。

分析:
由饼状图可知,目前亚洲的治愈人数占比超过一半,占68.6%,但目前确诊人数仍然占29.3%,是一个较大的占比,但幸运的是亚洲的死亡人数比例较小,仅占2.1%。

6. 各州确诊严重地区词云统计图(附件6)
制作简述:
导入python模块中的wordcloud模块,openpyxl模块
之后运用wordcloud导入字体文件,设置背景颜色、宽度、高度,最后根据各自比例导出成呈png格式的词云。
分析:
由上图对亚洲确诊人数进行分析绘制成词云,可以得知在亚洲,疫情最严重的国家是印度,其次是伊朗,沙特阿拉伯,巴基斯坦,土耳其等。该图虽没有显示具体的确诊人数或确诊人数占比,但用字体大小向我们更直观的突出了疫情严重的国家。
7、折线图(附录7)

制作简述:
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。
分析:
有折线图可知,欧洲每日新增病例总体上呈缓慢的趋势上升,但是2020年5月20日与6月20日,当日新增确诊病例剧增,但在6月20日前有所下降。

附件(源代码)
附件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’)

附录7:折线图
#模块导入
import pandas as pd
import matplotlib.pyplot as plt
#读取表格中的数据
data=pd.read_excel('世界各国数据.xlsx',None)
#设置字体
plt.rcParams['font.sans-serif']=['simhei']
data_in=data['欧洲']
data_out=data['亚洲']
a=data_in.groupby(data_in['日期']).mean()
b=data_out.groupby(data_out['日期']).count()
#print(a)
plt.plot(range(156),a['累计确诊'])
#plt.plot(range(156),b['当日新增确诊'])
plt.show()

南美洲疫情情况

**
1.确诊人数箱线图(附件1)
用列表表示南美洲各国的确诊人数,之后将列表转为一个DataFrame类型的数据,其中设置列表名为南美洲箱线图,最后使用plot函数对其进行绘制展现。

对上图进行分析,可较容易的看出来南美洲一半区域的累计确诊人数分布在0到40万的区域内。异常值少说明所取数据尾部轻,自由度相对较大。中位线偏下这一现象一方面反映了占小值的国家偏多,一方面也反映了最大值与最小值偏差大,存在一个国家的累计确诊人数远远大于其他国家的情况。
2.治愈、死亡、现有确诊总数饼图(附件2
对装载数据的excel表格预先处理,得出南美洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为南美洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最后使用plot函数对其进行绘制展现。

对上图进行分析,不难得出已治愈人数占最大比例,达60%之多,现有确诊达34%,死亡人数偏大,达近4%,可见疫情治理状况不容乐观。这张饼图直观且突出重点地清晰表达了南美洲的疫情状况。
3.疫情区域词云统计图(附件3)
导入python模块中的wordcloud模块,openpyxl模块
之后运用wordcloud导入字体文件,设置背景颜色、宽度、高度,最后根据各自比例导出成呈png格式的词云。

由上图对南美洲确诊人群进行分析绘制成词云,可以得知在南美洲这个地区,巴西、秘鲁、智利、哥伦比亚疫情严重情况最为突出,其中巴西疫情感染状况最为恶劣,其次为阿根廷、厄瓜多尔、玻利维亚、委内瑞拉、法属圭亚那、巴拉圭等,其中福克兰群岛马尔维纳斯疫情状况最不明显,累计确诊人数小于100人。
与之前绘制的图像相比,该图表达直观,重点清晰突出。
4.死亡人数柱状图(附件4)
读取“南美洲”表中各国的死亡人数,设置行名为巴西,秘鲁,智利,厄瓜多尔,哥伦比亚,阿根廷,玻利维亚,委内瑞拉,乌拉圭,巴拉圭,将列名设置为“死亡人数”,最后使用plot函数对其进行绘制展现。

由上图进行分析,我们可以得知,各个国家死亡人数排行依次为:巴西,秘鲁,智利,厄瓜多尔,哥伦比亚,阿根廷,玻利维亚,委内瑞拉,乌拉圭,巴拉圭。其中,巴西死亡人数最多,将要达到7万人数,同时数倍于排名第二与第三的秘鲁和智利。图中因为委内瑞拉、乌拉圭、巴拉圭的死亡人数与巴西(最大值)相差过大,以至于柱状图几乎显示不出来三者的柱形,同时也不免反映出了三个地区内的死亡人数较少,达65、28、20人,均少于100人。
5.治愈人数柱状图(附件5)
读取“南美洲”表中各国的治愈人数,设置行名为巴西,智利,秘鲁,哥伦比亚,厄瓜多尔,阿根廷,玻利维亚,委内瑞拉,法属圭亚那,巴拉圭,将列名设置为“治愈人数”,最后使用plot函数对其进行绘制展现。

由上图进行分析,我们可以得知,各个国家治愈人数排行依次为:巴西,智利,秘鲁,哥伦比亚,厄瓜多尔,阿根廷,玻利维亚,委内瑞拉,法属圭亚那,巴拉圭。其中,巴西治愈人数最多,将近于100万,同时远高于居于第二位和第三位的智利和秘鲁。跟死亡人数近似的趋势,很大原因是各国的人口基数问题,侧面反映出此类图表引用数据的一定局限性。但容易得出且确定的是这几个国家中,智利的排名上升反映出智利的患者处理情况相对不错。
6.确诊增量(附件6)
读取“南美洲”表中各国的新增确诊人数,设置行名为巴西,智利,哥伦比亚,秘鲁,阿根廷,玻利维亚,厄瓜多尔,法属圭亚那,委内瑞拉,巴拉圭,将列名设置为“新增确诊人数”,最后使用plot函数对其进行绘制展现。

对上图进行分析,我们可以得知,各个国家新增确诊人数排行依次为:巴西,智利,哥伦比亚,秘鲁,阿根廷,玻利维亚,厄瓜多尔,法属圭亚那,委内瑞拉,巴拉圭。巴西不出意外的又占据了榜一的位置,达近30000人数,遥遥领先于其他国家,智利近达7000人数,同样不容乐观,哥伦比亚、秘鲁、阿根廷紧随其后。其中值得注意的是,阿根廷相比于治愈人数图的排名上升,可侧面反映出阿根廷的实际疫情处理情况并不理想,甚至有偏向愈演愈烈的趋势。
7.新增确诊人数趋势图(附件7)
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。

对于上图所展现的折线,可以得出美洲的每日新增确诊人数总体呈上升趋势,其中2月8日到3月18日疫情情况一直趋于平稳且微弱。自3月19日始,疫情情况开始有所波动,并呈波动上升趋势。6月13日至6月16日新增确诊人数呈较大幅度的下降态势,疫情情况有所缓和,但后又呈大幅度上升趋势。在7月3日后,新增样例数目上升剧烈,呈爆发式增长。形势堪忧。

附件(源代码)

附件1
importopenpyxl
importmatplotlib.pyplot as plt
import pandas as pd
frompylab 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)
fori 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
fori 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 --
frommatplotlib import pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #解决中文乱码
plt.figure(figsize=(8,9)) #调节图形大小
labels = [u’治愈’,u’死亡’,u’现有确诊’] #定义标签
sizes = [1555877,93741,865742] #每块值
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
fromwordcloud 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
importopenpyxl
importmatplotlib.pyplot as plt
import time
importmatplotlib.pyplot as plt
frompylab 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,70000) # 指定Y轴的高度
plt.legend()
plt.show()

附件5
importopenpyxl
importmatplotlib.pyplot as plt
import time
importmatplotlib.pyplot as plt
frompylab 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, 1000000) # 指定Y轴的高度
plt.legend()
plt.show()

附件6
importopenpyxl
importmatplotlib.pyplot as plt
import time
importmatplotlib.pyplot as plt
frompylab 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, 30000) # 指定Y轴的高度
plt.xlim(0, 10)
plt.legend()
plt.show()

附件7
import pandas as pd
import matplotlib.dates as mdate
importmatplotlib.pyplot as plt
covid=pd.read_excel(‘covid-19.xlsx’,parse_dates=True)
df = covid.groupby([‘日期’]).sum()

def plot_curve1(data,title):
fig1 = plt.figure(figsize=(40,10))
ax1 = fig1.add_subplot(1,1,1)
ax1.xaxis.set_major_formatter(mdate.DateFormatter(’%Y-%m-%d’))
plt.xticks(pd.date_range(‘2020-02-08’,‘2020-07-06’),rotation=90)
plt.title(title)
plt.plot(data,‘o-’)
plt.show()
plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
plt.rcParams[‘axes.unicode_minus’]=False

plot_curve1(df,‘美洲累计确诊人数’)

**

非洲疫情情况

**
1.确诊人数箱线图(排名前10的国家)(附件1)
用列表表示非洲各国的确诊人数,之后将列表转为一个DataFrame类型的数据,其中设置列表名为非洲箱线图,最后使用plot函数对其进行绘制展现。

简单分析:
对上图进行分析,我们不难得知非洲疫情最严重地区与最微弱地区两者偏差很大,具有较大差值。存在2个国家的确诊人数远远大于其他国家的确诊人数的情况。还可以看出大多数国家确诊人数相近,偏差较小。
2. 死亡人数柱状图(排名前10的国家)(附件2)
读取“非洲”表中各国的新增确诊人数,设置行名为埃及、南非、阿尔及利亚、尼日利亚、苏丹、喀麦隆、摩洛哥、刚果(金)、肯尼亚、塞内加尔,将列名设置为“死亡人数”,使用plot函数对其进行绘制展现。

简单分析:
由上图进行分析,我们可以得知,各个国家死亡人数排行依次为:其中,埃及死亡人数最多,和第二位的南非一起远远超过第三位的阿尔及利亚,一方面是因为人口基数较大,一方面也反映了疫情局势刻不容缓。
3. 治愈人数柱状图(排名前10的国家)(附件3)
读取“非洲”表中各国的新增确诊人数,设置行名为南非、埃及、加纳、尼日利亚、阿尔及利亚、喀麦隆、摩洛哥、科特迪瓦、塞内加尔、苏丹,将列名设置为“治疗人数”,使用plot函数对其进行绘制展现

简单分析:
由上图进行分析,我们可以得知,各个国家治愈人数排行依次为:南非、埃及、加纳、尼日利亚、阿尔及利亚、喀麦隆、摩洛哥、科特迪瓦、塞内加尔、苏丹。其中,南非治愈人数最多,同时也远远高于居于第二位和第三位的埃及和加纳。跟死亡人数相似的分布趋势,很大程度是因为南非,埃及的人口基数较大,导致在相似的比例下,治愈人数与死亡人数排名会处于不可撼动的相同的位置上。
4.确诊增量,死亡增量,治愈增量柱状图(附件4)
读取“非洲”表中各国的新增确诊人数,设置行名为南非、埃及、摩洛哥、加纳、尼日利亚、阿尔及利亚、肯尼亚、科特迪瓦、马达加斯加、塞内加尔,将列名设置为“新增确诊人数”,使用plot函数对其进行绘制展现。

简单分析:
由上图进行分析,我们可以得知,各个国家新增确诊人数排行依次为:南非、埃及、摩洛哥、加纳、尼日利亚、阿尔及利亚、肯尼亚、科特迪瓦、马达加斯加、塞内加尔。南非仍然存在大量新增确诊人数,其他国家疫情状况相对的得到了一定的抑制。
5. 治愈,死亡,现有确诊总数饼图(附件5)
对装载数据的excel表格预先处理,得出北美洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为北美洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最后使用plot函数对其进行绘制展现。

简单分析:
由上图我们可以看到现阶段非洲内部大致的疫情情况。治愈人数和现有确诊人数比例相近,死亡人数占了小部分。可以看出非洲因为医疗条件的原因导致治愈的人数不多,还有大量的确诊人员正在接受治疗中。
6. 各州确诊严重地区词云统计图(附件6)
导入python模块中的wordcloud模块,openpyxl模块,之后运用wordcloud导入字体文件,设置背景颜色、宽度、高度,最后根据各自比例导出成呈png格式的词云。

简单分析:
南非、尼日利亚、加纳疫情严重情况较为突出,其中南非为甚。
由上图对非洲洲确诊人群进行分析绘制成词云,可以得知在非洲这个地区,南非、尼日利亚、加纳疫情严重情况最为突出,其中南非为甚,其次为尼日利亚、加纳、阿尔及利亚、摩洛哥、喀麦隆等,其中圣皮埃尔、安圭拉、圣巴泰勒地区疫情情况最不明显。与之前绘制的图像相比,该图表达直观,重点清晰突出。
7. 确诊人数日期变化表(附件7,8)
首先读取疫情信息表,将其中的确诊人数和治愈人数按日期相加并存储在新表中,再读取新表中的数据,以日期为x轴,累计人数为y轴,画随日期人数变化图。

简单分析:
由上图可以的出疫情传播到大洋洲在经过一段潜伏期后,在3月20日确诊人数突然大量增长,这是因为大洋洲一开始没有做好防控措施的原因;在4月15日确诊人数逐渐平稳下来,可以确认大洋洲的抗疫政策有很好的效果,但在7月确诊人数又有抬头的迹象需要警惕。

简单分析:
对于上图所展现的折线,可以得出非洲的每日新增确诊人数总体呈上升趋势,其中2月8日到4月28日疫情情况一直趋于平稳且微弱。自5月19日始,疫情情况开始有所波动,以几何波动急速爆升,形势堪忧。

**附件(源代码)
**
附件1
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data = [196750,75253,28711,20085,15941,14329,12592,10772,9767,7886]
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]
sorted_dict = sorted(death.items(), key=lambda x:x[1], reverse=True)
plt.figure(figsize=(12,8))
death1={}
k=0
for i, j in sorted_dict:
death1[i]=j
k=k+1
if k
10:
break
print(i, j)
x = tuple(death1.keys())
y = tuple(death1.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“死亡人数”) # 指定y轴描述信息
plt.title(“非洲死亡人数柱状图”) # 指定图表描述信息
plt.ylim(0,4000) # 指定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]
sorted_dict = sorted(death.items(), key=lambda x:x[1], reverse=True)
plt.figure(figsize=(12,8))
death1={}
k=0
for i, j in sorted_dict:
death1[i]=j
k=k+1
if k
10:
break
print(i, j)
x = tuple(death1.keys())
y = tuple(death1.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“治疗人数”) # 指定y轴描述信息
plt.title(“非洲治疗人数柱状图”) # 指定图表描述信息
plt.ylim(0,100000) # 指定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]
sorted_dict = sorted(death.items(), key=lambda x:x[1], reverse=True)
death1={}
k=0
for i, j in sorted_dict:
death1[i]=j
k=k+1
if k
10:
break
print(i, j)
plt.figure(figsize=(12,8))
x = tuple(death1.keys())
y = tuple(death1.values())
plt.bar(x, y, color=‘rgb’)
plt.xlabel(“国家”) # 指定x轴描述信息
plt.ylabel(“新增确诊人数”) # 指定y轴描述信息
plt.title(“非洲新增确诊人数柱状图”) # 指定图表描述信息
plt.ylim(0,12000) # 指定Y轴的高度
plt.legend()
plt.show()

附件5
import matplotlib
from matplotlib import pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #解决中文乱码
plt.figure(figsize=(9,9)) #调节图形大小
labels = [u’治愈’,u’死亡’,u’现有确诊’] #定义标签
sizes = [230121,11401,238643] #每块值
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.7) #数值距圆心半径倍数距离
#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’)

附件7
import csv
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
plt.rcParams[‘font.family’] = ‘sans-serif’
plt.rcParams[‘axes.unicode_minus’] = False
df=pd.read_csv(‘C:\Users\Bruce\Desktop\大洋洲.csv’,encoding=“GB2312”)
df_sum = df.groupby(‘日期’)[‘累计确诊’].sum()
df_sum.to_csv(‘C:\Users\Bruce\Desktop\大洋洲累计确诊.csv’,encoding=“GB2312”)
df=pd.read_csv(‘C:\Users\Bruce\Desktop\大洋洲.csv’,encoding=“GB2312”)
df_sum = df.groupby(‘日期’)[‘累计治愈’].sum()
df_sum.to_csv(‘C:\Users\Bruce\Desktop\大洋洲治愈人数.csv’,encoding=“GB2312”)
data = pd.read_csv(‘C:\Users\Bruce\Desktop\大洋洲累计确诊.csv’,encoding=“GB2312”)
x=data[‘日期’]
y=data[‘累计确诊’]
plt.figure(figsize=(20,12))
plt.xticks(rotation=270)
plt.plot(x,y)
plt.title(“大洋洲确诊人数日期变化表”,size=20) #设置表名为“表名”
plt.xlabel(‘日期’,size=20) #设置x轴名为“x轴名”
plt.ylabel(‘确诊人数’,size=20) #设置y轴名为“y轴名”
plt.savefig(“大洋洲确诊人数日期变化表.jpg”)
data = pd.read_csv(‘C:\Users\Bruce\Desktop\大洋洲治愈人数.csv’,encoding=“GB2312”)
x=data[‘日期’]
y=data[‘累计治愈’]
plt.figure(figsize=(20,12))
plt.xticks(rotation=270)
plt.plot(x,y)
plt.title(“大洋洲治愈人数日期变化表”,size=20) #设置表名为“表名”
plt.xlabel(‘日期’,size=20) #设置x轴名为“x轴名”
plt.ylabel(‘累计治愈’,size=20) #设置y轴名为“y轴名”
plt.savefig(“大洋洲治愈人数日期变化表.jpg”)

附件8
import pandas as pd
import csv
import matplotlib.pyplot as plt
df=pd.read_csv(‘C:\Users\Bruce\Desktop\非洲.csv’,encoding=“GB2312”)
df_sum = df.groupby(‘日期’)[‘累计确诊’].sum()
df_sum.to_csv(‘C:\Users\Bruce\Desktop\非洲累计确诊.csv’,encoding=“GB2312”)
df=pd.read_csv(‘C:\Users\Bruce\Desktop\非洲.csv’,encoding=“GB2312”)
df_sum = df.groupby(‘日期’)[‘累计治愈’].sum()
df_sum.to_csv(‘C:\Users\Bruce\Desktop\非洲治愈人数.csv’,encoding=“GB2312”)
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
plt.rcParams[‘font.family’] = ‘sans-serif’
plt.rcParams[‘axes.unicode_minus’] = False
data = pd.read_csv(‘C:\Users\Bruce\Desktop\非洲累计确诊.csv’,encoding=“GB2312”)
x=data[‘日期’]
y=data[‘累计确诊’]
plt.figure(figsize=(20,12))
plt.xticks(rotation=270)
plt.plot(x,y)
plt.title(“非洲确诊人数日期变化表”,size=20) #设置表名为“表名”
plt.xlabel(‘日期’,size=20) #设置x轴名为“x轴名”
plt.ylabel(‘确诊人数’,size=20) #设置y轴名为“y轴名”
plt.savefig(“非洲确诊人数日期变化表.jpg”)
data = pd.read_csv(‘C:\Users\Bruce\Desktop\非洲治愈人数.csv’,encoding=“GB2312”)
x=data[‘日期’]
y=data[‘累计治愈’]
plt.figure(figsize=(20,12))
plt.xticks(rotation=270)
plt.plot(x,y)
plt.title(“非洲治愈人数日期变化表”,size=20) #设置表名为“表名”
plt.xlabel(‘日期’,size=20) #设置x轴名为“x轴名”
plt.ylabel(‘累计治愈’,size=20) #设置y轴名为“y轴名”
plt.savefig(“非洲治愈人数日期变化表.jpg”)

**

欧洲疫情情况

**
1. 确诊人数箱线图(排名前10的国家)(附录一)
在这里插入图片描述
制作简述:
用列表表示欧洲各国的确诊人数,之后将列表转为一个DataFrame类型的数据,其中设置列表名为北美洲箱线图,最后使用plot函数对其进行绘制展现。
分析:
由确诊人数的箱线图,我们可以看到欧洲确诊人数最多的国家和最少的国家相差很大,其中。确诊人数最多的国家接近300000人,而确诊人数最少的国家还不到50000人。同时由中位线可知,各个国家确诊人数相差不大
2. 死亡人数柱状图(排名前10的国家)(附录二)
在这里插入图片描述
制作简述:
读取“欧洲”表中各国的死亡人数,设置行名为英国,意大利,法国,西班牙,俄罗斯,比利时,德国,荷兰,瑞典,瑞士,将列名设置为“死亡人数”,最后使用plot函数对其进行绘制展现。
分析:
由上表可知,欧洲死亡人数排在前十的国家分别是英国,意大利,法国,西班牙,俄罗斯,比利时,德国,荷兰,瑞典,瑞士,其中,英国位居第一,其死亡人数高达44220人,但是英国,意大利,法国和西班牙四个国家的死亡人数远高于其他国家。
3. 治愈人数柱状图(排名前10的国家)(附录三)
在这里插入图片描述
制作简述:
读取“欧洲”表中各国的治愈人数,设置行名为俄罗斯,西班牙,意大利,德国,法国,白俄罗斯,瑞士,葡萄牙,波兰,爱尔兰将列名设置为“治愈人数”,最后使用plot函数对其进行绘制展现。
分析:
由上图可知,治愈人数排在欧洲前十的国家分别是俄罗斯,西班牙,意大利,德国,法国,白俄罗斯,瑞士,葡萄牙,波兰,爱尔兰,其中,俄罗斯的治愈人数远高于其他国家,位居欧洲第一,其治愈人数为454329人。西班牙,意大利和德国的治愈人数相差不大均在180000~200000人之间。
4. 确诊增量,死亡增量,治愈增量柱状图(附录四)

制作简述:
读取“欧洲”表中各国的新增确诊人数,设置行名为俄罗斯,英国,乌克兰,罗马尼亚,葡萄牙,塞尔维亚,白俄罗斯,意大利,波兰,保加利亚,将列名设置为“新增确诊人数”,最后使用plot函数对其进行绘制展现。
分析:
由上表可知:欧洲累计确诊的增量前十的国家分别为俄罗斯,英国,乌克兰,罗马尼亚,葡萄牙,塞尔维亚,白俄罗斯,意大利,波兰,保加利亚,其中俄罗斯以6736人远超其他国家,位居欧洲第一,其余国家的累计确诊增量均比较低,均在1120以下。
5. 治愈,死亡,现有确诊总数饼图(附录五)
在这里插入图片描述
制作简述:
对装载数据的excel表格预先处理,得出欧洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为亚洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最后使用plot函数对其进行绘制展现。
在这里插入图片描述
分析:
由上图可知:欧洲目前的治愈人数已经超过了一半,即占总病例的58%,但是现确诊病例仍然较多,占总病例的35%,死亡人数的比重相对还是较大的。占总病例的8%
6. 各州确诊严重地区词云统计图(附录六)
在这里插入图片描述
制作简述:
导入python模块中的wordcloud模块,openpyxl模块
之后运用wordcloud导入字体文件,设置背景颜色、宽度、高度,最后根据各自比例导出成呈png格式的词云。
分析:
由该词云我们可以看出欧洲确诊最严重的国家为俄罗斯,西班牙,英国,意大利,德国等,与其他图形相比,词云虽然不能直接反映处各个国家的具体确诊人数,但可以直观的反映出,确诊病例严重的地方和确诊病例较少的地方。
7、折线图(附录7)
在这里插入图片描述
制作简述:
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。

分析:
对于上图所展现的折线,可以得出欧洲的每日新增确诊人数总体呈上升趋势, 但是从2020年3月31日开始逐步下滑,但2020年5月31日和2020年6月30日剧增但有立即降低啦。

附录(源代码)

附录一:箱线图
import numpy as np
import pandas as pd
import openpyxl
import matplotlib.pyplot as plt
from pylab import *
#读取表格中的数据
wb=openpyxl.load_workbook(‘data.xlsx’)
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
a=[0,0,0,0,0,0,0,0,0,0]
b={}
i=0
#获取工作表
ws=wb[‘欧洲’]
frequency_in={}
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
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)
plt.show()

附录二:死亡人数
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()

附录三:治愈人数
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()

附录四:新增确诊人数
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()

附录五:饼图
#-- 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 = [1433120, 193852, 858171] #每块值
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()

附录六:词云
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’)
#获取工作表
wl=wb[‘欧洲’]
frequency_out={}
for row in wl.values:
if row[0]==‘国家’:
pass
else:
frequency_out[row[0]]=float(row[1])
#根据确诊病例的数目生成词云
wordcloud.generate_from_frequencies(frequency_out)
#保存词云
wordcloud.to_file(‘wordcloud_out.png’)

附录7:折线图
#导入模块
import pandas as pd
import matplotlib.dates as mdate
import matplotlib.pyplot as plt
#读取数据
data=pd.read_excel('世界各国数据.xlsx',parse_dates=True)
plt.rcParams['font.sans-serif']=['SimHei']
df = data.groupby(['日期']).sum()
def plot_curve1(data,title):
fig1 = plt.figure(figsize=(40,10))
ax1 = fig1.add_subplot(1,1,1)
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))
plt.xticks(pd.date_range('2020/1/31-2020/6/30'),rotation=90)
plt.plot(mdate,'o-')
plt.show()
plt.rcParams['axes.unicode_minus']=False
plot_curve1(df,'欧洲累计确诊人数')

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值