利用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生成器的使用方法
Nov 21 Python
使用Python进行稳定可靠的文件操作详解
Dec 31 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
Python实现的多进程和多线程功能示例
May 29 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
Python操控mysql批量插入数据的实现方法
Oct 27 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
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
python设置检查点简单实现代码
2014/07/01 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
如何给Python代码进行加密
2020/01/10 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
如何利用Python 进行边缘检测
2020/10/14 Python
Melissa香港官网:MDreams
2016/07/01 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
大学校庆邀请函
2014/01/11 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
搞笑车尾标语
2014/06/23 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
捐款仪式主持词
2015/07/04 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书