使用Python绘制新型冠状肺炎全国增长趋势图

时间:2022-10-17 16:36:39

  截至1月28日24时,国家卫生健康委收到31个省(区、市)累计报告确诊病例5974例,现有重症病例1239例,累计死亡病例132例,累计治愈出院103例。现有疑似病例9239例。目前累计追踪到密切接触者65537人,当日解除医学观察1604人,现有59990人正在接受医学观察。累计收到港澳台地区通报确诊病例:香港特别行政区8例,澳门特别行政区7例,*地区8例。

使用Python绘制新型冠状肺炎全国增长趋势图

  本次采用Matplotlib库,pandas 库,Matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。Matplotlib可用于Python脚本,Python和IPython Shell、Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。

  Matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。您只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等。更多的示例,请参见基础绘图例子和示例陈列馆。

  为了简单绘图,该 pyplot 模块提供了类似于MATLAB的界面,尤其是与IPython结合使用时。对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组功能来完全控制线型,字体属性,轴属性等。

  在绘图结构中,figure创建窗口,subplot创建子图。所有的绘画只能在子图上进行。plt表示当前子图,若没有就创建一个子图。所有你会看到一些教程中使用plt进行设置,一些教程使用子图属性进行设置。他们往往存在对应功能函数。

Figure:面板(图),matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象。

Subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像。

以下是配置参数:

axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示

figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置

font: 字体集(font family)、字体大小和样式设置

grid: 设置网格颜色和线性

legend: 设置图例和其中的文本的显示

line: 设置线条(颜色、线型、宽度等)和标记

patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。

savefig: 可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色。

verbose: 设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying。

xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。

Pandas库,Pandas是什么?

  Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

利器之一:DataFrame

  DataFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

利器之一:Series

  它是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。

  本文用到其DataFrame,读取数据极其方便,并且把csv数据读取为结构化数据Dataframe.其中行列数据可直接被matplotlib画图所用。

使用Python绘制新型冠状肺炎全国增长趋势图

具体用法详见代码,以下是完整代码:

 # -*- coding: utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd df = pd.read_csv('total.csv')
#设置X轴,这里表示是时间轴
#x0 = ['1.11','1.12','1.13','1.14','1.15','1.16','1.17','1.18','1.19','1.20','1.21','1.22','1.23','1.24','1.25','1.26','1.27','1.28','1.29']
x0 = df.columns
#设置Y轴,这是表示数据,两个方向分别表示确诊和疑似人数
#y1 = np.array([41,41,41,41,41,41,41,45,62,198,291,440,571,830,1287,1975,2744,4515,5997])
#y2 = np.array([0,0,0,0,0,0,0,0,0,0,54,37,393,1072,1965,2684,5794,6973,9239])
y1 = np.array(df.ix[0])
y2 = np.array(df.ix[1]) #设置Y轴范围
plt.ylim(-10500,6500) #画数据
plt.bar(x0,y1,0.9,label='确诊人数',color='r')
plt.bar(x0,-y2,0.9,label='疑似人数',color='b') #在柱的上方和下方另写上人数
for x,y in zip(x0,y1):
plt.text(x,y+0.05,'%d'%y,ha='center',va='bottom') for x,y in zip(x0,y2):
plt.text(x,-y-500,'%d'%y,ha='center',va='bottom') #设置X轴刻度
plt.xticks(x0) #设置轴标签
plt.xlabel('日期(2020年)')
plt.ylabel('人数') #设置显示风格
plt.grid(True) #设置显示图例
plt.legend() #设置显示中文,这里用的微软雅黑字体
matplotlib.rcParams['font.sans-serif'] = ['Microsoft YaHei']
matplotlib.rcParams['font.family']='sans-serif' #设置标题
plt.title('新型冠状肺炎全国确诊及疑似感染人数近十九天增长趋势 2020.1.29',fontsize=18) #显示图表
plt.show()

csv数据如下:

使用Python绘制新型冠状肺炎全国增长趋势图

使用Python绘制新型冠状肺炎全国增长趋势图的更多相关文章

  1. Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?

    Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...

  2. python画新冠肺炎国内和世界各国累计确诊数量热图

    新冠肺炎国内疫情基本控制住,很多地方都开始摘下口罩了.但是国外的疫情依然处于爆发期,特别是美国,截止目前其累计确诊数量已突破110w.五一节北京柳絮杨絮满天飞,不适合外出.在家心血来潮,献丑画一下各地 ...

  3. SIR模型预测新冠病毒肺炎发病数据

    大家还好吗? 背景就不用多说了吧?本来我是初四上班的,现在延长到2月10日了.这是我工作以来时间最长的一个假期了.可惜哪也去不了.待在家里,没啥事,就用python模拟预测一下新冠病毒肺炎的数据吧.要 ...

  4. Python绘制3D图形

    来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...

  5. 如何用 Python 绘制玫瑰图等常见疫情图

    新冠疫情已经持续好几个月了,目前,我国疫情已经基本控制住了,而欧美国家正处于爆发期,我们会看到很多网站都提供了多种疫情统计图,今天我们使用 Python 的 pyecharts 框架来绘制一些比较常见 ...

  6. Python绘制Excel图表

    今天讲解下如何使用Python绘制各种Excel图表,下面我们以绘制饼状图.柱状图.水平图.气泡图.2D面积图.3D面积图为例来说明. import openpyxlfrom openpyxl imp ...

  7. Python绘制PDF文件~超简单的小程序

    Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...

  8. 用canvas 绘制的饼状统计图、柱状统计图、折线统计图

    canvas 绘制的饼状统计图 canvas 绘制的柱状统计图 canvas 绘制的折线统计图

  9. Python绘制3d螺旋曲线图实例代码

    Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述 xs, ys X轴,Y轴坐标定点 zs Z值,每一个点的值都是1 zdir 绘制2D集合时使用 ...

随机推荐

  1. python中字符与ascii码转换

    ASCII码转字符用chr()函数:  字符转ASCII码用ord()函数:  

  2. MongoDB简述

    简介 MongoDB is an open-source document database that provides high performance, high availability, an ...

  3. andorid 下拉刷新

    1:android的下拉刷新操作是需要一个ListView,通过onTouchEvent来判断用户的手势操作,用户触摸屏幕并且下拉时,当下拉超过指定的设定高度时就提示用户进行刷新. 2:当进行刷新时, ...

  4. JAVA学习第五十九课 — 网络编程概述

    网络模型 OSI(Open System Interconnection)开放系统互连:參考模型 TCP/IP 网络通讯要素 IP地址 port号 传输协议 网络參考模型 七层OSI模型的基本概念要了 ...

  5. 【Beta】阶段 第三次Daily Scrum Meeting

    每日任务 ·1.本次会议为第三次 Meeting 会议 ·2.本次会议在周三上午9:40召开,会议时间为10分钟 一.今日站立式会议照片 二.每个人的工作(有work item的ID) 三.工作中遇到 ...

  6. LINUX 笔记-ls命令

    常用参数: -l :列出长数据串,包含文件的属性与权限数据等 -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件 ...

  7. pywin32安装教程

    下载 pywin32-224-cp37-cp37m-win32.whl 放在 Scripts 目录下,然后cmd 安装 pip install pypiwin32 即可成功 此次安装成功对应的pyth ...

  8. 在 golang 中使用 Json

    序列化 序列化对象将使用 encoding/json 中的 Marshal 函数. 函数原型为:func Marshal(v interface{}) ([]byte, error) 以下是官网给出的 ...

  9. 格式化输出python

    一.格式化输出 1.实例 name = input("Name:") age = input("Age:") job = input("Job:&qu ...

  10. 纯css3无缝滚动

    纯css3无缝向左滚动: HTML: <div class="marqueCon"> <div class="marque"> < ...