本文代码在https://blog.csdn.net/xufive/article/details/104093197的基础上修改
原代码的作者着重写了程序实现的原理,但是对于资源库的安装没有详细讲解,因此我在这里把我踩过的坑分享给大家。另外,对于原代码,我写成了一个类方法。
import time
import json
import requests
from datetime import datetime
from pymysql import *
import numpy as np
import matplotlib
import matplotlib.figure
from matplotlib.font_manager import FontProperties
from matplotlib.backends.backend_agg import FigureCanvasAgg
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.image as mpimg
这是要安装的资源库,前几个都可以通过pip直接安装,比较难安装的是Basemap,这是GitHub上的地址:
https://github.com/matplotlib/basemap
下载时,出现了以下状况:
试了三次都不行,于是我换用浏览器下载:
一百多兆的东西要下五个小时???
我的网络是没问题的,可以正常上网,但是下载速度很慢,没关系,检查一下网络:
网络是没问题的,我之前也遇到过这样的问题,估计是服务器的问题了,过一阵再试一下就好了。
在这里,为了节省大家的时间,大家可以直接用下面这个链接下载:
https://download.lfd.uci.edu/pythonlibs/q4hpdf1k/basemap-1.2.1-cp37-cp37m-win_amd64.whl
注意:python3.7版本且64位机的Windows系统才适用!
如需下载对应版本的.whl文件,还需要到这个链接下载:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#basemap
好了,关于basemap模块的安装就讲到这里,接下来讲一下我改进的代码:
class Inquire(object):
def __init__(self):
try:
self.conn = connect(host = '127.0.0.1',
port = 3306,
user = 'root',
password = 'root',
charset = 'utf8',
db = '2019_ncov')
self.cursor = self.conn.cursor()
print("数据库连接成功!")
except Exception as e:
print(e)
plt.rcParams['font.sans-serif'] = ['FangSong'] # 设置默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时'-'显示为方块的问题
先定义一个Inquire类,再定义一个初始化函数,用于连接数据库
def ticks_time(self):
ticks = time.strftime("%Y%m%da1", time.localtime())
# print("当前时间为:", ticks)
return ticks
def creat_table(self):
ticks = self.ticks_time()
self.cursor.execute("CREATE TABLE `%s` (id INT AUTO_INCREMENT PRIMARY KEY,province CHAR(10),num INT(10))"%ticks)
print("数据表'%s'创建成功!"%ticks)
我的想法是给每天的数据建一个数据表,当然,也可以根据需要,每小时建一个数据表。我建的数据表主要有两个字段:省份以