利用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的Cookie.py模块支持冒号做key的方法
Dec 28 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
python tkinter窗口最大化的实现
Jul 15 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
如何查看python关键字
Jan 17 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 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
CI框架表单验证实例详解
2016/11/21 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
javascript Excel操作知识点
2009/04/24 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
Python实用日期时间处理方法汇总
2015/05/09 Python
Python 常用string函数详解
2016/05/30 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
python 绘制正态曲线的示例
2020/09/24 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
2014年秋季开学演讲稿
2014/05/24 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
优秀班主任材料
2014/12/16 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
综合管理员岗位职责
2015/02/11 职场文书
考试没考好检讨书
2015/05/06 职场文书
爱心捐助活动总结
2015/05/09 职场文书
红领巾广播站广播稿
2015/08/19 职场文书