利用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的迭代器与生成器实例详解
Jul 16 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
python机器学习之神经网络(二)
Dec 20 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
PyQt5每天必学之单行文本框
Apr 19 Python
详解Django中间件执行顺序
Jul 16 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
解决Django no such table: django_session的问题
Apr 07 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 中phar包的使用教程详解
2018/10/26 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
AngularJS表单验证功能
2017/10/19 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python读取Excel实例详解
2018/08/17 Python
python3.7.0的安装步骤
2018/08/27 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
python调用私有属性的方法总结
2020/07/24 Python
python读取xml文件方法解析
2020/08/04 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
Internet主要有哪些网络群组成
2015/12/24 面试题
十一个高级MySql面试题
2014/10/06 面试题
校运会广播稿100字
2014/01/27 职场文书
大学生社会实践评语
2014/04/25 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
技术股东合作协议书
2014/12/02 职场文书
爱心捐款感谢信
2015/01/20 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP
React四级菜单的实现
2022/04/08 Javascript