利用python绘制数据曲线图的实现


Posted in Python onApril 09, 2020

”在举国上下万众一心、众志成城做好新冠肺炎疫情防控工作的特殊时刻,我们不能亲临主战场,但我们能坚持在大战中坚定信心、不负韶华。“

1、爬取新闻保存为json文件,并将绘图所需数据保存至数据库

数据库表结构:

利用python绘制数据曲线图的实现

代码部分:

import pymysql
import re
import sys,urllib,json
from urllib import request
from datetime import datetime
import pandas as pd
Today=datetime.now().strftime(r"%Y-%m-%d")
#Today='2020-02-14'
def pachong():
  url='http://api.tianapi.com/txapi/ncov/index?key=xxx&date={}'.format(Today)
  req = request.Request(url)
  resp = request.urlopen(req)
  content = resp.read().decode()
  data=json.loads(content)
  with open('/Users/zhangyuchen/Desktop/latestTrends.json','w') as fp:#将所得的数据存储为json文件
    json.dump(data,fp = fp,ensure_ascii = False,indent = 4,sort_keys=True)
  #dump函数有很多参数,第一个是目标object,第二个是要写入的文件对象
  print("成功保存为json文件!")
  return(re.findall(r'"confirmedCount":(.+?),"',content),re.findall(r'"currentConfirmedCount":(.+?),"',content),re.findall(r'"curedCount":(.+?),"',content))
def connectMysql(cc): 
  #/usr/local/mysql/bin/mysql -u root -p
  db = pymysql.connect("localhost", "root", "密码", "dbname",charset='utf8' )
  cursor = db.cursor()
  sql="""insert into {0} (DATE,SICK,SICK_NOW,RECOVER)values('{1}','{2}','{3}','{4}')"""
  cursor.execute(sql.format('db1',Today,int(cc[0][0]),int(cc[1][0]),int(cc[2][0])))
  cursor.execute(sql.format('db2',Today,int(cc[0][1]),int(cc[1][1]),int(cc[2][1])))
  db.commit()
  print(("成功将{}数据存入数据库!").format(Today))
  db.close()
cc=pachong()
connectMysql(cc)

json文件:

利用python绘制数据曲线图的实现

2、利用matplotlib库函数绘制图表

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import pymysql
import re
import sys, urllib,json
from urllib import request
#/usr/local/mysql/bin/mysql -u root -p
date=[]
cSick=[]
aSick=[]
cNowSick=[]
aNowSick=[]
cRecover=[]
aRecover=[]
db = pymysql.connect("localhost", "root", "密码", "trends")
sql="select * from db1 ORDER BY DATE"
cursor = db.cursor()
cursor.execute(sql)
results = cursor.fetchall()
while results:
  for row in results:
    date.append(row[0].strftime("%d"))
    cSick.append(row[1])
    cNowSick.append(row[2])
    cRecover.append(row[3])
  results=cursor.fetchone()
#查询Abroad Table
sql="select * from db2"
cursor.execute(sql)
results = cursor.fetchall()
while results:
  for row in results:
    aSick.append(row[1])
    aNowSick.append(row[2])
    aRecover.append(row[3])
  results=cursor.fetchone()
cursor.close()
db.close()
def DrawLineChart(ySick,yNowSick):
  plt.plot(x,ySick,color='y',label="Cumulative number of cases",linewidth=3,linestyle="--")
  plt.plot(x,yNowSick,color='r',label="Current number of cases",linewidth=3,linestyle="-")
def DrawBarChart(yRecover):
  width=0.45#柱子宽度
  p2 = plt.bar(x,yRecover,width,label="Cured Count",color="#87CEFA")
Days=len(aSick)
plt.figure(figsize=(16,12), dpi=80)#设置分辨率为80像素/每英寸
x=np.arange(Days)
#创建两个子图
plt.subplot(322)
plt.title("Trends of March")
DrawLineChart(cSick,cNowSick)
DrawBarChart(cRecover)
plt.figlegend()
plt.xticks(x,date)
plt.ylabel('Number')
plt.subplot(324)
#plt.title("Trends of March")
DrawLineChart(aSick,aNowSick)
DrawBarChart(aRecover)
plt.xticks(x,date,rotation=0)
plt.xlabel('Date')
plt.ylabel('Number')
plt.show()

到此这篇关于利用python绘制数据曲线图的实现的文章就介绍到这了,更多相关python 数据曲线图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
爬山算法简介和Python实现实例
Apr 26 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
pandas通过loc生成新的列方法
Nov 28 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
python遍历路径破解表单的示例
Nov 21 Python
pytorch 如何使用float64训练
May 24 Python
详解Python生成器和基于生成器的协程
Jun 03 Python
python区块链持久化和命令行接口实现简版
May 25 Python
利用python生成照片墙的示例代码
Apr 09 #Python
Python 改变数组类型为uint8的实现
Apr 09 #Python
pandas 强制类型转换 df.astype实例
Apr 09 #Python
python 给图像添加透明度(alpha通道)
Apr 09 #Python
Python日志logging模块功能与用法详解
Apr 09 #Python
解决python DataFrame 打印结果不换行问题
Apr 09 #Python
Python的PIL库中getpixel方法的使用
Apr 09 #Python
You might like
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP防注入安全代码
2008/04/09 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
vue实现动态数据绑定
2017/04/28 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
视光学专业毕业生推荐信
2013/10/28 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
销售行政专员职责
2014/01/03 职场文书
公司前台辞职报告
2014/01/19 职场文书
青年教师培训方案
2014/02/06 职场文书
如何书写授权委托书?
2019/06/25 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
Python3接口性能测试实例代码
2021/06/20 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
关于Vue中的options选项
2022/03/22 Vue.js