利用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中os操作文件及文件路径实例汇总
Jan 15 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
python如何统计序列中元素
Jul 31 Python
python基础教程项目四之新闻聚合
Apr 02 Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
python怎么自定义捕获错误
Jun 29 Python
5道关于python基础 while循环练习题
Nov 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
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
浅析is_writable的php实现
2013/06/18 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
PHP查询分页的实现代码
2017/06/09 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
几个有趣的Javascript Hack
2010/07/24 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
json数据的列循环示例
2013/09/06 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
详解rem 适配布局
2018/10/31 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
优良学风班申请材料
2014/02/13 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
社区灵活就业证明
2014/11/03 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS