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('代码运行完毕')
Python读取MySQL数据生成热力图
最新推荐文章于 2023-11-24 15:02:34 发布