数据可视化之新型冠状病毒肺炎疫情地图(python+MySQL)

本文代码在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)

我的想法是给每天的数据建一个数据表,当然,也可以根据需要,每小时建一个数据表。我建的数据表主要有两个字段:省份以

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.郑先生_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值