利用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实现斐波那契递归函数的方法
Sep 08 Python
python执行shell获取硬件参数写入mysql的方法
Dec 29 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
详解Python requests 超时和重试的方法
Dec 18 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
Django 反向生成url实例详解
Jul 30 Python
python 元组的使用方法
Jun 09 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 22 Python
python图像处理 PIL Image操作实例
Apr 09 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/10/26 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
JS backgroundImage控制
2009/05/19 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
深入理解Nodejs Global 模块
2017/06/03 NodeJs
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
Python赋值语句后逗号的作用分析
2015/06/08 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
对python:print打印时加u的含义详解
2018/12/15 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
keras slice layer 层实现方式
2020/06/11 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
测绘工程个人的自我评价
2013/11/23 职场文书
模具数控专业自荐信
2014/01/27 职场文书
赞美老师的演讲稿
2014/05/22 职场文书
开工典礼策划方案
2014/05/23 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
银行自荐信范文
2015/03/25 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
转正申请报告格式
2015/05/15 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫