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

  本次采用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画图所用。

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

 # -*- 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绘制新型冠状肺炎全国增长趋势图的更多相关文章

  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. 020、Java中字母大小写转换

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  2. javascript实现ul中列表项随机排列

    方法1 <!DOCTYPE html><html lang="en"><head> <script type="text/jav ...

  3. leetcode349 350 Intersection of Two Arrays & II

    """ Intersection of Two Arrays Given two arrays, write a function to compute their in ...

  4. 如何在ESXi 5.x/6.x(2005205​​)中下载和安装异步驱动程序

    本文提供了在ESXi 5.x和6.x中下载和安装异步驱动程序的步骤 https://kb.vmware.com/s/article/2005205

  5. MyBatis笔记(一)

    MyBatis学习随笔 第一个MyBatis项目 创建项目 导入maven依赖,根据需要选择性添加mysql/oracle,spring,spring-mybatis等依赖,这里就不一一列出了 < ...

  6. js封装、继承

    封装:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html 继承:http://ww ...

  7. window 如何访问虚拟机的mapreduce(遇到的坑)

    首先 先把你虚拟机和本机网络链接弄通 (详情看上一篇)  一些关于mapreduce 和hadoop的配置都在上一篇 安装eclipse 的hadoop Map/Reduce插件详情 看其他博客园.. ...

  8. java 九数组分数

    九数组分数 1,2,3-9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. public class A { public static vo ...

  9. POJ 2796:Feel Good 单调栈经典题

    Feel Good Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 11626   Accepted: 3212 Case T ...

  10. POJ 1852:Ants

    Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 11754   Accepted: 5167 Description ...