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('代碼運行完畢')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章