利用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中__init__()方法的高级应用
May 11 Python
python Crypto模块的安装与使用方法
Dec 21 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
PYTHON基础-时间日期处理小结
May 05 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
Python的log日志功能及设置方法
Jul 11 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
python操作yaml说明
Apr 08 Python
python3.7调试的实例方法
Jul 21 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
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
php MessagePack介绍
2013/10/06 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
2014/04/03 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python实现扫描ip地址的小程序
2019/04/16 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
使用pip安装python库的多种方式
2019/07/31 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
港湾网络笔试题
2014/04/19 面试题
Java面试题:为什么要用Java
2012/05/11 面试题
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
污染环境建议书
2015/09/14 职场文书
八年级作文之友谊
2019/12/02 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android