利用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自然语言编码转换模块codecs介绍
Apr 08 Python
使用Python求解最大公约数的实现方法
Aug 20 Python
在Mac OS上搭建Python的开发环境
Dec 24 Python
pandas多级分组实现排序的方法
Apr 20 Python
django中静态文件配置static的方法
May 20 Python
Python线程指南分享
Nov 19 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
基于python图像处理API的使用示例
Apr 03 Python
keras 获取某层输出 获取复用层的多次输出实例
May 23 Python
Python configparser模块操作代码实例
Jun 08 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 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笔记之:php数组相关函数的使用
2013/04/26 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
原生js实现日期联动
2015/01/12 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
Python生成随机验证码的两种方法
2015/12/22 Python
Python如何快速实现分布式任务
2017/07/06 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
python实现画循环圆
2019/11/23 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
高中毕业生的个人自我评价
2014/02/21 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
2015感人爱情寄语
2015/02/26 职场文书
2015年新教师工作总结
2015/04/28 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
python字典进行运算原理及实例分享
2021/08/02 Python
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers