**

各省疫情数据分析

**

1.黑龙江与香港疫情分析
2.湖南与湖北疫情分析
3.安徽与上海疫情分析

一.黑龙江与香港

1. 绘制两个省份累计确诊人数随时间变化折线图,结合当地政策进行分析(附录一)
制作简述:
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。

分析:
有图可知,三月中旬之前,香港的疫情处于初期,还未开始爆发,但与黑龙江相比,黑龙江的确诊人数要高于香港,但黑龙江在二月后期开始短暂爆发,后面确诊人数趋于平稳。造成此现象的原因是:二月中旬和后期处于春运时期,各省返乡人流量较大,导致病毒传播速度较快,但是由于我国各省防疫措施的及时实施,在3,4月时疫情得到有效的控制,相比香港,从2019年11月开始,香港发生动乱,持续将近四个月,在此期间,前往香港的人数较少,导致3月中旬之前香港的疫情还未开始。
但3月中旬以后,香港的疫情开始爆发,累计确诊人数一直持续到4月初才趋于平稳,但是在6月末,7月初香港的确诊人数再次呈上升趋势,可见,香港疫情可能再次失去控制。
4月初的黑龙江,由于靠近中国的边疆,有着大量的境外输入病例,导致黑龙江的疫情再次短暂爆发。但由于黑龙江的防疫措施的有效执行和实施,导致境外输入病例得到有效控制,目前,黑龙江的累计确诊病例已经趋于平稳,无再次上升的趋势。

2. 绘制两个省份累计死亡人数随时间变化折线图,结合当地政策进行分析(附录二)
制作简述:
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。

分析:
由上图可知,黑龙江在2月时死亡病例持续上升,但在3月后,黑龙江的累计死亡病例就已经趋于平稳了。出现此现象的原因时,2月正是中国疫情爆发初期,无数医护人员初次接触该病毒,对该病毒没有完全了解,部分重症病者无法第一时间得到正确的救治方案以及自身抵抗力弱的原因,感染病毒后引起自己身体上的并发症,造成人员的死亡。
而香港从2月到3月中旬累计死亡病例一直持续上升,后趋于平稳,但在6月后期又出现人员的死亡。但从总体来看,香港的累计死亡人数低于黑龙江的累计死亡人数。

3. 绘制两个省份治愈人数,死亡人数,确诊人数占比饼图(附录三)
制作简述:对装载数据的excel表格预先处理,得出南美洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为南美洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最终用subplot函数实现把多个图形放在一个图里的功能,使用plot函数对其进行绘制展现。

分析:
从上图可知,黑龙江确诊人数占总体的50%,治愈人数占总体的49.31%,死亡占总数的0.69%,香港确诊人数占总体的52.16%,治愈人数占总体的47.55%,死亡人数占总体的0.29%,可见,黑龙江的确诊人数少于香港,但是黑龙江的治愈人数以及死亡人数的占比均大于香港。但两者占比相差不大。

4. 两个省份的各项数据做雷达图(f附录四)
制作简述:
导入python模块中的numpy,xlrd与matplotlib.pyplot模块,利用xlrd函数建立与数据之间的联系,从而达到引用数据的目的, 之后利用matplotlib.pyplot模块对其进行绘制展现。

分析:
由上图可见,黑龙江的累计确诊人数和累计治愈人数均小于香港的累计确诊人数和累计治愈人数,均在1000人上下,黑龙江的累计确诊和累计治愈接近同一个点,可见,黑龙江目前的疫情情况是处于好转这个局面,而相比香港的累计确诊和累计治愈还存在较小差距,因此,黑龙江的防疫措施略好于香港的防疫和治愈措施,但是两个地方的疫情治理情况良好,治疗情况也良好。

5. 绘制柱状图,按照月份,做累计确诊,累计治愈,累计死亡,累计境外输入的柱状图
香港:(附录五)
黑龙江:(附录六)


制作简述:
读取“香港(黑龙江)”表中各省的累计确诊、累计治愈、累计死亡人数,设置行名从2到7,总共6个月份,将列名设置为“疫情情况”,最后使用plot函数。
分析:
从上图可知,香港的累计确诊人数自2月份开始一直呈现上升趋势,但是香港的2,3月治愈人数较少,从4月开始香港的治愈人数迅速增加,但是于累计确诊人数相比还有一定差距。较好的是香港的死亡人数较少。但是,目前香港的疫情还未结束,累计确诊病例还暂未停止。
由上图可知,黑龙江2,3月的累计确诊人数相近,在3月时黑龙江的累计治愈和累计死亡人数之和就近似于累计确诊病例,但是由于境外病例的输入,黑龙江在4月时疫情再次爆发,但黑龙江5、6月的累计确诊病例于四月相比并未增加,在5、6月时黑龙江的累计治愈人数和累计死亡人数之和就近似于黑龙江的累计确诊病例了。可见,目前黑龙江的疫情已经快要结束了。

6、创意图(附录7)

各个图表的优势和劣势:
柱状图:可以清楚的知道累计确诊、累计治愈和累计死亡的具体数值和三者之间的数值大小。但是无法清晰的表示出每个月的增长或减小的具体数值
折线图:可以清楚的知道累计确诊或累计治愈或累计死亡随着时间的增长而发生的改变,但是无法将三者之间的关系直观的反应出来。
饼状图:可以清晰的反映出部分占总体的百分比,但是我们无法知道部分具体数值。
雷达图:可以看出两个地区的部分数据相比的情况,但是我们也无法得到部分数值,只能了解大概数值。
箱线图:可以知道最大值和最小值相距大小,还可以知道中位线和四分线,但我们无法知道具体数值
词云图:无法知道具体数值,但是我们可以直观的看出哪个地区的疫情最严重,哪些地区疫情不严重
漏斗图:可以知道每个月的变化大小,但无法知道具体数值。

附录(源代码)
附录一:累计确诊折线图
#模块导入
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
#读取表格中的数据
data=pd.read_excel('数据.xlsx',None)
#设置字体
plt.rcParams['font.sans-serif']=['simhei']
data_in=data['黑龙江']
data_out=data['香港']
plt.figure(figsize=(15, 5))
plt.plot(data_in['日期'],data_in['累计确诊'])
plt.plot(data_out['日期'],data_out['累计确诊'])
plt.legend(['黑龙江','香港'])
plt.title('累计确诊人数趋势')
plt.show()

附录二:累计死亡折线图
#模块导入
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
#读取表格中的数据
data=pd.read_excel('数据.xlsx',None)
#设置字体
plt.rcParams['font.sans-serif']=['simhei']
data_in=data['黑龙江']
data_out=data['香港']
plt.figure(figsize=(15, 5))
plt.plot(data_in['日期'],data_in['累计死亡'])
plt.plot(data_out['日期'],data_out['累计死亡'])
plt.legend(['黑龙江','香港'])
plt.title('累计死亡人数趋势')
plt.show()

附录三:饼图
#模块导入
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['香港']
#治愈,死亡,确诊人数占比饼图
plt.subplot(2,1,1)
plt.pie([934,13,947],labels=['治愈','死亡','确诊'],autopct='%.2f%%')
plt.title('黑龙江')
plt.subplot(2,1,2)
plt.pie([1156,7,1268],labels=['治愈','死亡','确诊'],autopct='%.2f%%')
plt.title('香港')
plt.show()

附录四:雷达图
import numpy as np
import matplotlib.pyplot as plt
import xlrd
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
plt.style.use('ggplot')
workbook=xlrd.open_workbook('数据.xlsx')
sheet1=workbook.sheets()[0]
a=sheet1.row_values(122)
values = [0,0,0,0,0,0]
values[0]=a[1]
values[1]=a[3]
values[2]=a[4]
values[3]=a[8]
values[4]=a[10]
values[5]=a[11]
print(a)
feature = ['当日新增确诊', '当日新增治愈', '当日新增死亡', '累计确诊', '累计治愈', '累计死亡']
angles = np.linspace(0, 2 * np.pi, len(values), endpoint=False)
values = np.concatenate((values, [values[0]]))
angles = np.concatenate((angles, [angles[0]]))
sheet2=workbook.sheets()[1]
b=sheet2.row_values(122)
values_2 = [0,0,0,0,0,0]
values_2[0]=b[1]
values_2[1]=b[3]
values_2[2]=b[4]
values_2[3]=b[8]
values_2[4]=b[10]
values_2[5]=b[11]
print(values_2)
values_2 = np.concatenate([values_2, [values_2[0]]])
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.plot(angles, values, 'o-', linewidth=2, label='黑龙江')
ax.fill(angles, values, alpha=0.25)
ax.plot(angles, values_2, 'o-', linewidth=2, label='香港')
ax.fill(angles, values_2, alpha=0.25)
ax.set_thetagrids(angles * 180 / np.pi, feature)
ax.set_ylim(0,1200)
plt.legend(loc='best')
ax.grid(True)
plt.show()

附录五:香港柱状图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams[“font.sans-serif”] = [“SimHei”]
mpl.rcParams[“axes.unicode_minus”] = False
x = np.arange(5)
y = [95,714,1037,1084,1205]
y1 = [33,128,846,1037,1107]
y2 = [2,4,4,4,7]
bar_width = 0.2
tick_label = [ “2月份”, “3月份”, “4月份”, “5月份”,“6月份”]
plt.bar(x, y, bar_width, align=“center”, color=“g”, label=“累计确诊”, alpha=0.5)
plt.bar(x+bar_width, y1, bar_width, color=“b”, align=“center”, label=“累计治愈”, alpha=0.5)
plt.bar(x+bar_width+bar_width, y2, bar_width, color=“c”, align=“center”, label=“累计死亡”, alpha=0.5)
plt.xlabel(“香港”)
plt.ylabel(“疫情情况”)
plt.xticks(x+bar_width/2, tick_label)
plt.legend()
plt.show()

附录六:黑龙江柱状图
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams[“font.sans-serif”] = [“SimHei”]
mpl.rcParams[“axes.unicode_minus”] = False
x = np.arange(5)
y = [480,484,944,945,947]
y1 = [330,469,587,932,934]
y2 = [13,13,13,13,13]
bar_width = 0.2
tick_label = [ “2月份”, “3月份”, “4月份”, “5月份”,“6月份”]
plt.bar(x, y, bar_width, align=“center”, color=“g”, label=“累计确诊”, alpha=0.5)
plt.bar(x+bar_width, y1, bar_width, color=“b”, align=“center”, label=“累计治愈”, alpha=0.5)
plt.bar(x+bar_width+bar_width, y2, bar_width, color=“c”, align=“center”, label=“累计死亡”, alpha=0.5)
plt.xlabel(“黑龙江”)
plt.ylabel(“疫情情况”)
plt.xticks(x+bar_width/2, tick_label)
plt.legend()
plt.show()

附录7:创意图
option = {
parallelAxis: [
{dim: 0, name: '累计确诊'},
{dim: 1, name: '累计治愈'},
{dim: 2, name: '累计死亡'},
{
dim: 3,
name: '省份',
type: 'category',
data: ['江西', '湖南', '广东', '河南']
}
],
series: {
type: 'parallel',
lineStyle: {
width: 4
},
data: [
[932,931,1, '江西'],
[1019,1015,4, '湖南'],
[1643,1631,8, '广东'],
[1276,1254,22,'河南']
]
}
};

二.湖南与湖北

1. 绘制两个省份累计确诊人数随时间变化折线图,结合当地政策进行分析
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。

由上图可知:
湖北由于是疫情的爆发地,所以在2月疫情一爆发的时候,确诊人数就暴增,短短一个月便增长了几万确诊人数。而湖南虽然离湖北近,但因为湖北的防控措施及时,所以并没有太多的确诊人数。可以看出湖南在疫情突然爆发的情况下,疫情防控措施是做的极其快速和有效的。

2. 绘制两个省份累计死亡人数随时间变化折线图,结合当地政策进行分析
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。

由上图可知:
湖北由于是疫情的爆发地,并且一开始并没有药物来治疗,所以死亡人数很多。但因为防控的及时和效果好,所以在湖北临近的湖南并没有太多的死亡案例。可以看出湖南在疫情突然爆发的情况下,疫情防控措施是做的极其快速和有效的。

3. 绘制两个省份治愈人数,死亡人数,确诊人数占比饼图(用subplot函数把多个图形放在一个图里,尝试使用np.linespace等函数对饼图进行美化)
对装载数据的excel表格预先处理,得出湖北湖南的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为湖北湖南,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最终用subplot函数实现把多个图形放在一个图里的功能,使用plot函数对其进行绘制展现。

对上图进行分析:
在湖北省,现在有93.38%的确诊人员现已恢复健康,剩余的6.62%已死亡。而湖北作为中国的疫情爆发地,可以做到这样已是很不容易的了,这不仅仅是防控疫情措施力度大,防控疫情政策正确,能做到的。这还有我们无数湖北人员的配合。
在湖南省内,现已没有确诊人数,有99.6%的确诊人员已经康复,而剩下的0.40%已死亡,在离疫情爆发地——湖北如此之近能做到这样是很不容易的。这需要有很强大的执行力和防控力。
由此可见在湖北湖南两地,疫情防控做到还是很到位的,人民的配合也是不容缺少的一部分。

4. 两个省份的各项数据做雷达图
导入python模块中的numpy,xlrd与matplotlib.pyplot模块,利用xlrd函数建立与数据之间的联系,从而达到引用数据的目的, 之后利用matplotlib.pyplot模块对其进行绘制展现。

对上图进行分析,易知湖北的累计确诊和累计治愈人数均大于湖南省,均达近60000人,上海市均达1000人左右。两个区域的累计确诊和累计治愈人数虽然有较大的差距,但由于湖北是疫情的爆发地,疫情爆发的早,没有可以治疗的药物,所以死亡率高也是情有可原的。以上两者的对比反映出两个区域的疫情治理情况良好,治疗情况良好。

5. 绘制柱状图,按照月份,做累计确诊,累计治愈,累计死亡,累计境外输入的柱状图
读取“湖北(湖南)”表中各省的累计确诊、累计治愈、累计死亡人数,设置行名从2到7,总共6个月份,将列名设置为“疫情情况”,最后使用plot函数对其进行绘制展现。


对以上两图进行分析:
湖北省的累计确诊人数在2月份就几乎来到了其的峰值,近60000人,在接下来的5个月内,增长近乎停滞,治疗人数在接下来的一个月内便达到了最大限度,疫情情况趋于平稳。湖南省的累计确诊人数在2月份也达500人数,在接下来的1个月内,仍成不同幅度的增长,治疗人数也呈不同幅度的上升,在4月份,累计确诊人数达1000人左右。
湖北省的疫情爆发早于湖南,并且还是疫情爆发地,所以一直有新的确诊人数的出现,而湖南疫情出现的比湖北晚,所以疫情平稳时期来的很早,一方面是因为湖南省早期的预防措施做得好且完备,另一方面是因为湖北省的防控做到很到位。

6. 气泡图

由上图得知:
湖北省的累计确诊人数在2月份就几乎来到了其的峰值,近60000人,在接下来的5个月内,增长缓慢,治疗人数在接下来的一个月内便达到了最大限度,疫情情况趋于平稳。

附录(源代码)
附件1
import matplotlib.dates as mdate
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
data = pd.read_excel(‘C:\Users\Bruce\Desktop\湖南.xlsx’,encoding=“GB2312”)
x=data[‘日期’]
y1=data[‘湖南累计确诊’]
y2=data[‘湖北累计确诊’]
plt.figure(figsize=(26, 8))
plt.plot(x, y1, label=“湖南累计确诊人数”, color="#F08080")
plt.plot(x, y2, label=“湖北累计确诊人数”, color="#DB7093", linestyle="–")
plt.title(“湖南/湖北累计确诊人数变化图”,size=20) #设置表名为“表名”
plt.xlabel(‘日期’,size=20) #设置x轴名为“x轴名”
plt.ylabel(‘人数’,size=20) #设置y轴名为“y轴名”
plt.legend()
plt.savefig(“湖南和湖北确诊人数变化图.jpg”)

附件2
import matplotlib.dates as mdate
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
data = pd.read_excel(‘C:\Users\Bruce\Desktop\湖南.xlsx’,encoding=“GB2312”)
x=data[‘日期’]
y1=data[‘湖南累计死亡’]
y2=data[‘湖北累计死亡’]
plt.figure(figsize=(26, 8))
plt.plot(x, y1, label=“湖南累计死亡人数”, color="#F08080")
plt.plot(x, y2, label=“湖北累计死亡人数”, color="#DB7093", linestyle="–")
plt.title(“湖南/湖北累计死亡人数变化图”,size=20) #设置表名为“表名”
plt.xlabel(‘日期’,size=20) #设置x轴名为“x轴名”
plt.ylabel(‘人数’,size=20) #设置y轴名为“y轴名”
plt.legend()
plt.savefig(“湖南和湖北死亡人数变化图.jpg”)

附件3
import matplotlib
from matplotlib import pyplot as plt
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] #解决中文乱码
plt.figure(figsize=(9,9)) #调节图形大小
labels = [u’现有确诊人数’,u’治愈人数’,u’死亡人数’] #定义标签
sizes = [68135, 63623, 4512] #每块值
sizes2=[1019,1015,4]
plt.subplot(2,1,1)
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.title(“湖北”,fontdict={‘weight’:‘normal’,‘size’: 30})

plt.subplot(2,1,2)
colors = [‘yellowgreen’,‘red’,‘lightskyblue’] #每块颜色定义
explode = (0,0,0) #将某一块分割出来,值越大分割出的间隙越大
patches,text1,text2 = plt.pie(sizes2,
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()

附件4
import numpy as np
import matplotlib.pyplot as plt
#正常显示中文
plt.rcParams[‘font.sans-serif’] = ‘Microsoft YaHei’
plt.rcParams[‘axes.unicode_minus’] = False
#使用ggplot的风格绘图
plt.style.use(‘ggplot’)
#构造数据
values = [68135, 63623, 4512, 0, 0, 0]
values_1 = [1019,1015,4, 0, 0, 0]
feature = [‘累计确诊’,‘累计治愈’,‘累计死亡’,‘累计疑似’,‘累计重症’,‘累计累计境外输入’]
N = len(values)
#生成角度
angles = np.linspace(0,2np.pi,N,endpoint=False)
#数据闭合
values = np.concatenate((values,[values[0]]))
angles = np.concatenate((angles,[angles[0]]))
values_1 = np.concatenate((values_1,[values_1[0]]))
#绘图
fig = plt.figure()
#设置为极坐标格式
ax = fig.add_subplot(111, polar=True)
#绘制折线图
ax.plot(angles,values,‘o-’,linewidth=2,label=‘湖北’)
ax.fill(angles,values,‘r’,alpha=0.5)
#填充颜色
ax.plot(angles,values_1,‘o-’,linewidth=2,label=‘湖南’)
ax.fill(angles,values_1,‘b’,alpha=0.5)
#通过这一个命令调整背景线
ax.set_thetagrids(angles
180/np.pi,feature)
#设置极轴范围
ax.set_ylim(0,70000)
#添加标题
plt.title(‘湖北与湖南各项数值比’)
#增加网格纸
plt.legend(loc=‘best’)
ax.grid(True)
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(‘data3.xlsx’)
data1=data[‘各省历史数据’]
death= {}
care={}
dead={}
input1={}
k=0
for row in data1.values:
k+=1
if k1001:
break
pass
if row[0]‘日期’ :
pass
elif k>=837:
death[row[0]]=row[8]
care[row[0]]=row[10]
dead[row[0]]=row[11]
input1[row[0]] = row[13]
print(row[0])
sorted_dict = death.items()
sorted_dict2 = care.items()
sorted_dict3 = dead.items()
sorted_dict4 = input1.items()
plt.figure(figsize=(26,8))
death1={}
care1={}
dead={}
input1={}
for i, j in sorted_dict:
death1[i]=j
for i, j in sorted_dict2:
care1[i]=j
for i, j in sorted_dict3:
dead[i]=j
for i, j in sorted_dict4:
input1[i]=j
x = tuple(death1.keys())
y = tuple(death1.values())
y1=tuple(care1.values())
y2=tuple(dead.values())
y3=tuple(input1.values())
plt.bar(x, y, color=‘r’,label=‘累计确诊’)
plt.bar(x, y1, color=‘b’,label=‘累计治愈’)
plt.bar(x, y2, color=‘g’,label=‘累计死亡’)
plt.bar(x, y3, color=‘y’,label=‘累计境外输入’)
plt.xlabel(“日期”) # 指定x轴描述信息
plt.ylabel(“人数”) # 指定y轴描述信息
plt.title(“湖南累计确诊,累计治愈,累计死亡,累计境外输入人数柱状图”) # 指定图表描述信息
plt.ylim(0,2000) # 指定Y轴的高度
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(‘data3.xlsx’)
data1=data[‘各省历史数据’]
death= {}
care={}
dead={}
input1={}
k=0
for row in data1.values:
k+=1
if k170:
break
pass
if row[0]‘日期’:
pass
else:
death[row[0]]=row[8]
care[row[0]]=row[10]
dead[row[0]]=row[11]
input1[row[0]] = row[13]
print(row[0])
sorted_dict = death.items()
sorted_dict2 = care.items()
sorted_dict3 = dead.items()
sorted_dict4 = input1.items()
plt.figure(figsize=(26,8))
death1={}
care1={}
dead={}
input1={}
for i, j in sorted_dict:
death1[i]=j
for i, j in sorted_dict2:
care1[i]=j
for i, j in sorted_dict3:
dead[i]=j
for i, j in sorted_dict4:
input1[i]=j
x = tuple(death1.keys())
y = tuple(death1.values())
y1=tuple(care1.values())
y2=tuple(dead.values())
y3=tuple(input1.values())
plt.bar(x, y, color=‘r’,label=‘累计确诊’)
plt.bar(x, y1, color=‘b’,label=‘累计治愈’)
plt.bar(x, y2, color=‘g’,label=‘累计死亡’)
plt.bar(x, y3, color=‘y’,label=‘累计境外输入’)
plt.xlabel(“日期”) # 指定x轴描述信息
plt.ylabel(“人数”) # 指定y轴描述信息
plt.title(“湖北累计确诊,累计治愈,累计死亡,累计境外输入人数柱状图”) # 指定图表描述信息
plt.ylim(0,80000) # 指定Y轴的高度
plt.legend()
plt.show()

附件6
import openpyxl
import matplotlib.pyplot as plt
import time
from pylab import *
import numpy as np
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
data=openpyxl.load_workbook(‘data3.xlsx’)
data1=data[‘各省历史数据’]
num={}
k=0
for row in data1.values:
k+=1
if k170 :
break
pass
if row[0]‘日期’:
pass
else:
num[row[0]]=row[8]
k=0
num1={}
for row in data1.values:
k+=1
if k170 :
break
pass
if row[0]‘日期’:
pass
else:
num1[row[0]]=row[10]
num2={}
k=0
for row in data1.values:
k+=1
if k170 :
break
pass
if row[0]‘日期’:
pass
else:
num2[row[0]]=row[11]
x3=list(num2.values())
x2=list(num1.values())
y1=list(num.keys())
x1=list(num.values())
plt.figure(figsize=(12,24))
x=np.array(x1)
y=np.array(y1)
x22=np.array(x2)
x33=np.array(x3)
n=0.0002
plt.scatter(y,x,s=xn,alpha=0.6)
plt.scatter(y,x22,s=x
n,alpha=0.6)
plt.scatter(y,x33,s=x*n,alpha=0.6)
plt.title(‘湖北累计确诊累计治愈累计死亡气泡图’)
plt.xlabel(‘时间’)
plt.ylabel(‘人数’)
plt.legend([‘累计确诊’,‘累计治愈’,‘累计死亡’])
plt.show()

三.上海与安徽

1.两个省份累计确诊人数随时间变化折线图(附件1)
导入python模块中的pandas模块,matplotlib.dates模块与matplotlib.pyplot模块
先运用pandas模块与数据所在的excel建起联系,进行有一定条件的数据筛选与调用,之后利用matplotlib型模块对于所采用的数据进行绘制展现。



对上两图进行分析:
由上图不难看出,安徽省最终趋于的累计确诊人数大于上海市,达1000人左右,上海市最终趋于700人左右。造成这一结果的原因有二,一个原因是两个地区的人口基数不同,安徽省的人数显然大于上海市的人数,另一个原因是两个省都较快地对疫情爆发做了及时并有效的应对措施,并严格管控,使最终累计确诊人数控制在小于1000人的低水平内。
在疫情爆发之初,安徽省的疫情传播速度要大于上海。上海的总体医疗水平更好,并始终保持跟踪疫情动态,做的应对疫情预案早且完备,使疫情传播速度缓慢。安徽有部分农村地区,预备的应对措施并未及时的采用下去,并在疫情还未完全爆发之际,有大量返乡人员,从而造成大规模的人口流动。
但时间到3月初之后,安徽省的疫情状况趋于稳定,上海市依然有零星增长。在安徽省加强化的管控和应对下,疫情最终的平稳态势是必然。上海市的零星增长大多因为境外输入,身为我国重要的与国际接轨的城市,在外国疫情情况越来越恶劣的情况下,上海需要时刻保持警觉,防止疫情的再一次爆发。
值得注意的是,两个区域的因疫情死亡的人数都小于10人,疫情致死率不高,治疗情况良好,进行了医疗资源的有效分配。两个区域有条不紊的设立疫情定点医院,高效率的接纳患者,并积极给予治疗。

2.两个省份治愈人数,死亡人数,确诊人数占比饼图(附件2)
对装载数据的excel表格预先处理,得出南美洲的治愈、死亡、现有确诊总人数,之后直接带入数据。定义图形的大小,表情,每块的颜色,将所显示的分数设置为小数点后两位,设置列表名为南美洲,同时保证x,y轴刻度设置一致,保证饼图为圆形。运用t.set_size调整字体大小,最终用subplot函数实现把多个图形放在一个图里的功能,使用plot函数对其进行绘制展现。

对以上两图进行分析:
在安徽省内,以累计确诊人数为总数的情况下,治愈人数已达99%比例之多,死亡人数占到0.5%左右,现已无现有确诊人数。在上海市内,在以累计确诊人数为总数的情况下,治愈人数已达95%的比例,现有确诊人数达4%左右的比例,死亡人数达到1%的比例。
两省对比来看,总体上,安徽省的如今疫情治理情况要好于上海的治理情况。值得肯定的是,两者的累计死亡人数比例并不高,治愈人数占95%以上的比例,患者治疗情况皆良好。安徽已无现有确诊人数比例,这是疫情情况趋于平稳的体现,上海市依然有4%的现有确诊人数,需要引起警惕,要对境外人员入境可能造成的疫情传染做好完备的预防措施。

3. 两个省份的各项数据做雷达图(附件3)
导入python模块中的numpy,xlrd与matplotlib.pyplot模块,利用xlrd函数建立与数据之间的联系,从而达到引用数据的目的, 之后利用matplotlib.pyplot模块对其进行绘制展现。

对上图进行分析,易知安徽的累计确诊和累计治愈人数均大于上海市,均达近1000人,上海市均达800人左右。两个区域的累计确诊和累计治愈人数都在同一个水平线上,治愈率相近。累计死亡人数相较于前两者数值过小,显示几乎为一个点。以上两者的对比反映出两个区域的疫情治理情况良好,治疗情况良好。

4.累计确诊,累计治愈,累计死亡的柱状图(附件4)
读取“上海(安徽)”表中各省的累计确诊、累计治愈、累计死亡人数,设置行名从2到7,总共6个月份,将列名设置为“疫情情况”,最后使用plot函数对其进行绘制展现。



对以上两图进行分析:
安徽省的累计确诊人数在2月份就几乎来到了其的峰值,近1000人,在接下来的5个月内,增长近乎停滞,治疗人数在接下来的一个月内便达到了最大限度,疫情情况趋于平稳。上海市的累计确诊人数在2月份还处于“萌芽期”,达350人数,在接下来的5个月内,仍成不同幅度的增长,治疗人数也呈不同幅度的上升,在7月份,累计确诊人数达700人左右。
安徽省的疫情爆发早于上海市,但疫情平稳时期比上海来的更早,一方面是因为上海市早期的预防措施做得好且完备,另一方面是因为上海市后期涌入了大量返工人员和境外输入人员,使疫情控制有难度,需要时间。两者相同的是累计死亡人数少且增长近于停滞,说明疫情治疗状况良好。

5.累计治愈/累计现存确诊气泡图
以累计治愈为横坐标x,以累计现存确诊为纵坐标y。n 为倍数,用来调节气泡的大小。之后利用 matplotlib.pyplot函数对其进行绘制展现。



对以上两图进行分析:
上海市的气泡主要集中于累计现存确诊数在0——200区间,累计治愈在250——700区间。安徽省的气泡主要集中于累计现存确诊数0——800,累计治愈在0——200区间内,在累计治愈在800——1000,累计现存确诊在400——0的区间内,气泡也稍有集中。说明这样的数据对应在调用的数据里多有体现,数据在此区间内的变化用了较长时间,对应着疫情应对时期上的“焦灼期”。
多个图表的优势和弊端:
柱状图:优点:利用柱子的高度,直观的反映了数据的差异。利用了我们肉眼对高度差异的敏感。缺点:1.只有一个维度进行比较。2.只适用于中小规模的数据集。
饼图:优点:直观的反映每一个部分在整体中所占的比例。缺点:具有局限性——只能反映某一时点上的情况,无法看到一段时间内的变化趋势、增长幅度等信息。
折线图:优点:不仅可以表示数量的大小,而且可以反映同一事物在不同时间里的发展变化的情况。易于显示数据变化趋势,直观的反映各组之间的差别。缺点:在数据繁多时,确定精确的数据需要时间,有一定的难度。
雷达图:优点:从多个角度综合分析数据,从而使所表达出来的结果更清晰、完整、全面。缺点:当参加评价的对象较多时,很难给出综合评价的排序结果,且无法体现出各项指标的具体数值。
漏斗图:优点:直观的反映数量随进程产生的变化。缺点:跟应用于反映疫情确诊人数变化相比,更适合应用于反映业务流程,防止梯形容量的变化过于“生硬”。
箱线图:优点:绘制依靠实际数据,不需要事先假定数据服从特定的分布形式,对数据没有限制性要求。缺点:在绘制前,需要事先完成五个基本统计量的计算。
气泡图:优点:1.直观,是条形图的美观代替。2.如果给气泡加上颜色,可以用来表达四维数据。缺点:只适用于不要求精确辨识第三维的场合。

附件(源代码)

附件1
import matplotlib.dates as mdate
import matplotlib.pyplot as plt

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

附件2
import matplotlib.pyplot as plt
import xlrd
workbook=xlrd.open_workbook(r’C:\Users\D\Desktop\资料和要求\各省历史数据.xlsx’)
labels = [u’现有确诊人数’,u’治愈人数’,u’死亡人数’]
anhui = [1,1,1]
shanghai = [1,1,1]
sheet1=workbook.sheets()[0]
a=sheet1.row_values(1165)
anhui[0]=a[14]
anhui[1]=a[10]
anhui[2]=a[11]
sheet2=workbook.sheets()[0]
b=sheet1.row_values(1969)
shanghai[0]=b[14]
shanghai[1]=b[10]
shanghai[2]=b[11]
plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
explode = (0, 0, 0.2) # 设置各部分距离圆心的距离
fig1 = plt.figure(facecolor=‘white’,figsize=(10,5))
ax1=plt.subplot(1,2,1)
ax1.pie(anhui, explode=explode,autopct=’%1.1f%%’,
shadow=False, startangle=90)
ax1.axis(‘equal’)
ax1.legend(labels)
plt.title(“安徽”,fontdict={‘weight’:‘normal’,‘size’: 15})

ax1=plt.subplot(1,2,2)
ax1.pie(shanghai, explode=explode,autopct=’%1.1f%%’,
shadow=False, startangle=90)
ax1.axis(‘equal’)
ax1.legend(labels)
plt.title(“上海”,fontdict={‘weight’:‘normal’,‘size’: 15})

plt.tight_layout()
plt.show()

附件3
import numpy as np
import matplotlib.pyplot as plt
import xlrd

plt.rcParams[‘font.sans-serif’] = ‘SimHei’
plt.rcParams[‘axes.unicode_minus’] = False
plt.style.use(‘ggplot’)
workbook=xlrd.open_workbook(r’C:\Users\D\Desktop\资料和要求\各省历史数据.xlsx’)
sheet1=workbook.sheets()[0]
a=sheet1.row_values(1165)
values = [0,0,0,0,0,0]
values[0]=a[1]
values[1]=a[3]
values[2]=a[4]
values[3]=a[8]
values[4]=a[10]
values[5]=a[11]
print(values)
feature = [‘当日新增确诊’, ‘当日新增治愈’, ‘当日新增死亡’, ‘累计确诊’, ‘累计治愈’, ‘累计死亡’]
angles = np.linspace(0, 2 * np.pi, len(values), endpoint=False)
values = np.concatenate((values, [values[0]]))
angles = np.concatenate((angles, [angles[0]]))
sheet2=workbook.sheets()[0]
b=sheet2.row_values(1790)
values_2 = [0,0,0,0,0,0]
values_2[0]=b[1]
values_2[1]=b[3]
values_2[2]=b[4]
values_2[3]=b[8]
values_2[4]=b[10]
values_2[5]=b[11]
print(values_2)
values_2 = np.concatenate([values_2, [values_2[0]]])
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.plot(angles, values, ‘o-’, linewidth=2, label=‘安徽’)
ax.fill(angles, values, alpha=0.25)
ax.plot(angles, values_2, ‘o-’, linewidth=2, label=‘上海’)
ax.fill(angles, values_2, alpha=0.25)
ax.set_thetagrids(angles * 180 / np.pi, feature)
ax.set_ylim(0,1200)
plt.legend(loc=‘best’)
ax.grid(True)
plt.show()
plt.show()

附件4
上海
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams[“font.sans-serif”] = [“SimHei”]
mpl.rcParams[“axes.unicode_minus”] = False
x = np.arange(6)
y = [337, 516, 652, 672, 712,716]
y1 = [287, 341, 599, 657, 675,681]
y2 = [3, 6, 7, 7, 7,7]
bar_width = 0.2
tick_label = [“2月份”, “3月份”, “4月份”, “5月份”, “6月份”,“7月份”]
plt.bar(x, y, bar_width, align=“center”, color=“c”, label=“累计确诊”, alpha=0.5)
plt.bar(x+bar_width, y1, bar_width, color=“b”, align=“center”, label=“累计治愈”, alpha=0.5)
plt.bar(x+bar_width+bar_width, y2, bar_width, color=“r”, align=“center”, label=“累计死亡”, alpha=0.5)
plt.xlabel(“上海”)
plt.ylabel(“疫情情况”)
plt.xticks(x+bar_width/2, tick_label)
plt.legend()
plt.show()
安徽
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams[“font.sans-serif”] = [“SimHei”]
mpl.rcParams[“axes.unicode_minus”] = False
x = np.arange(6)
y = [990, 990, 991, 991, 991,991]
y1 = [888, 984, 985, 985, 985,985]
y2 = [6, 6, 6, 6, 6,6]
bar_width = 0.2
tick_label = [“2月份”, “3月份”, “4月份”, “5月份”, “6月份”,“7月份”]
plt.bar(x, y, bar_width, align=“center”, color=“c”, label=“累计确诊”, alpha=0.5)
plt.bar(x+bar_width, y1, bar_width, color=“b”, align=“center”, label=“累计治愈”, alpha=0.5)
plt.bar(x+bar_width+bar_width, y2, bar_width, color=“r”, align=“center”, label=“累计死亡”, alpha=0.5)
plt.xlabel(“安徽”)
plt.ylabel(“疫情情况”)
plt.xticks(x+bar_width/2, tick_label)
plt.legend()
plt.show()

附件5
上海
import pandas as pd
import matplotlib.pyplot as plt
covid1=pd.read_excel('data1.xlsx',parse_dates=True)
df = covid1[['累计现存确诊','累计治愈']]
size=df['累计现存确诊'].rank()
n=5
plt.scatter(df['累计治愈'],df['累计现存确诊'],s=sizen,alpha=0.6)
plt.title('上海市累计治愈/累计现存确诊气泡图')
plt.show()
安徽
import pandas as pd
import matplotlib.pyplot as plt
covid1=pd.read_excel('data1.xlsx',parse_dates=True)
df = covid1[['累计现存确诊','累计治愈']]
size=df['累计现存确诊'].rank()
n=5
plt.scatter(df['累计治愈'],df['累计现存确诊'],s=size
n,alpha=0.6)
plt.title('安徽省累计治愈/累计现存确诊气泡图')
plt.show()

新冠疫情可视化(7月11日,7月12日)相关推荐

  1. Python新冠疫情可视化分析系统 计算机专业毕业设计源码08504

    摘 要 文中首先对新冠疫情可视化分析的项目需求进行了背景分析,接着介绍了项目的总体设计思路,然后具体阐述了疫情数据库的设计.疫情数据的查询.疫情数据的展示,并分析了核心代码.文中利用MySQL数据库存 ...

  2. 基于Springboot的新冠疫情可视化管理系统(可视化展示+后台管理功能)

    这里写自定义目录标题 基于Springboot的新冠疫情可视化管理系统 基础环境: 功能快捷键 实现效果图 源码查看 基于Springboot的新冠疫情可视化管理系统 本项目有基于Springboot ...

  3. 新冠疫情可视化(7月9日,7月10日)

    ** 各国疫情数据分析 ** 1.英国与俄罗斯疫情分析 2.巴西与美国疫情分析 3.中国和印度疫情分析 一.英国与俄罗斯 1.全国新增确诊趋势图(附件1) 英国 导入python模块中的pandas模 ...

  4. 基于geoplotlib包的美国某天新冠疫情可视化的等值线图

    1.问题描述 新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称"新冠肺炎",世界卫生组织命名为"2019冠状病毒病" ...

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

    各州的疫情数据分析 1. 大洋洲相关疫情数据分析 2. 北美洲相关疫情分析 3. 亚洲相关疫情分析 4.南美洲相关疫情分析 5.非洲相关疫情分析 6.欧洲相关疫情分析 大洋洲疫情情况 1.确诊人数箱线 ...

  6. 2021年暑假数学建模第一次模拟赛:新冠疫情预测(插值,时间序列,微分方程建模)

    本系列赛题.数据获取: 2021年暑假数学建模模拟赛(赛题+数据+分析) 不直接提供论文等资料,分析已经很详细了 整理不易,欢迎点赞+关注+收藏 2021年暑假数学建模第一次模拟赛:新冠疫情预测(插值 ...

  7. 利用Python实现新冠疫情数据可视化(获取疫情历史数据,制作南丁格尔玫瑰图、疫情地图、动态疫情组合图、词云)

    文章目录 前言 1.获取疫情历史数据 2.制作南丁格尔玫瑰图 2.1 全球各国确诊人数玫瑰图 2.2 全国各省市零新增天数玫瑰图 3.制作疫情地图 3.1全国各省市目前确诊总人数疫情地图 3.2全球各 ...

  8. 北大研究团队面向新冠疫情的数据可视化分析与模拟预测

    本次pythonday开发者日活动有幸请到北京大学的陈宝权教授做分享,以下是陈教授近期进行的面向新冠疫情的数据可视化分析与模拟预测项目,陈教授将会在本次活动上做分享与答疑,欢迎大家参与! 指导教师:陈 ...

  9. 新冠疫情数据采集,分析及其可视化

    新冠疫情数据采集,分析及其可视化 文章目录 新冠疫情数据采集,分析及其可视化 前言 一.数据采集与清洗 二.数据可视化 1.历史新增确诊与累计确诊条形图 2.6月25日个省份疫情情况 3.中国地图疫情 ...

最新文章

  1. webpack打开项目命令_webpack前端模块打包工具基本使用的详细记录(一)
  2. 文巾解题 19. 删除链表的倒数第 N 个结点
  3. 【转】求一个类的sizeof应考虑的问题
  4. 深度学习“奠基人”特伦斯:人工智能算法框架可被科学家掌控
  5. 使用python编写自己的进程调试工具
  6. linux英伟达显卡偶尔加载失败,Ubuntu 8.10环境下出现NVIDIA显卡无法正常工作的解决方法...
  7. 【PAT】2021年冬季考试甲级,摸鱼游记、92分
  8. Meteor资源国外优秀web APP 收藏
  9. GoAhead2.5源代码分析之10-web server主程序(main.c)
  10. 基于Java的学生信息管理系统
  11. 在clubof.net上建立了个人主页
  12. 企业管理软件,真的以业务流程为中心?
  13. android 点击返回键home键,appium怎么按下系统按键?如按下返回键、home键等等
  14. forEach和$.each()以及$().each()的用法
  15. 土木工程与计算机专业考研学校排名,土木工程专业考研学校排名
  16. python 处理异常_Python异常处理:
  17. 项目管理软件之争,禅道和JIRA大对比
  18. 在线旅游市场的延进以及发展趋势访谈回顾
  19. 移动开发,哪个平台更胜一筹?
  20. 张宇1000题线性代数 第八章 相似理论

热门文章

  1. System.Diagnostics.Process.Start的妙用
  2. 江湖问题研究-- intent传递有没有大小限制,是多少?
  3. python span标签的text属性_如何使用python selenium单击span元素
  4. 等了20年的物联网,这次真的会成功吗?
  5. MySql超级详细基础教程
  6. mysql里any是什么_【MySQL】mysql中any,in,some,all的区别
  7. 137.菜单悬停放大特效
  8. 对#Hello,2015征文#+Android 热敏打印机打印二维码(图片)博客的尝试
  9. 联想电脑如何取消触屏-thinkpad X230
  10. Linux中存储设备的命名规则