Python读取MySQL数据生成热力图

import numpy as np
import pandas as pd
import folium
import webbrowser
from folium.plugins import HeatMap
import datetime
import time
import pymysql.cursors
import decimal
# 创建一个游标
conn = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='xu19931026',
    db='cd_taxi',
    charset='utf8'
)

start_time=datetime.datetime.now()
if conn:
    print("连接成功!")
cursor = conn.cursor()  # 获取游标
sql = "select BeginLongitude,BeginLatitude FROM Order_Data where FROM_UNIXTIME(BeginTime) BETWEEN '2016-11-01 09:00:00' and '2016-11-01 10:00:00' "  # sql语句
cursor.execute(sql)
result=cursor.fetchall()
df=pd.DataFrame(result)
df.columns = ['a','b'] #改变df的列名,因为默认的第0列无法取出
lon = np.array(df.a) #取第a列
lat = np.array(df.b)
num=len(lon) #num为数组大小
data = [ [lat[i],lon[i]] for i in range(num) ]    #将数据制作成[lats,lons,weights]的形式
print('data已经处理完')
print('**************************************')
map_osm = folium.Map(location=[30.6531870000,104.0837360000],zoom_start=15)
#绘制Map,开始缩放程度是5倍zoom_start表示初始地图的缩放尺寸,数值越大放大程度越大
HeatMap(data).add_to(map_osm)  # 将热力图添加到前面建立的map里

file_path = r"/Users/zhangpengxu/Desktop/研二上小论文必须完成/代码/text05.html"
map_osm.save(file_path)     # 保存为html文件

print('代码运行完毕')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章