利用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实现的防DDoS脚本
Feb 08 Python
Python字符串替换实例分析
May 11 Python
Python字符串特性及常用字符串方法的简单笔记
Jan 04 Python
用Python写冒泡排序代码
Apr 12 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
对python中类的继承与方法重写介绍
Jan 20 Python
python的debug实用工具 pdb详解
Jul 12 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
Python logging模块写入中文出现乱码
May 21 Python
Python 实现进度条的六种方式
Jan 06 Python
Python进行区间取值案例讲解
Aug 02 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
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
BootStrap中
2016/12/10 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
python psutil库安装教程
2018/03/19 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
HTML5中的新元素介绍
2008/10/17 HTML / CSS
公证委托书大全
2014/04/04 职场文书
技校毕业生自荐信
2014/06/03 职场文书
小学运动会演讲稿
2014/08/25 职场文书
初婚初育证明范本
2014/11/24 职场文书
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers