python熱力圖實現簡單方法

在我們想要對不同變量進行判斷的時候,會分析其中的之間的聯系。這種理念同樣也被用在實例生活中,最常見到的是做一個地理的熱力圖。很多人對畫熱力圖的方法不是很清楚,我們可以先裝好相關的工具,瞭解一些使用參數,然後在實例中進行畫熱力圖的實例體驗,下面就來看看具體的方法吧。

1.導入相關的packages

import seaborn as sns
%matplotlib inline
sns.set(font_scale=1.5)

2.參數

vmax:設置顏色帶的最大值

vmin:設置顏色帶的最小值

cmap:設置顏色帶的色系

center:設置顏色帶的分界線

annot:是否顯示數值註釋

fmt:format的縮寫,設置數值的格式化形式

linewidths:控制每個小方格之間的間距

linecolor:控制分割線的顏色

cbar_kws:關於顏色帶的設置

mask:傳入佈爾型矩陣,若為矩陣內為True,則熱力圖相應的位置的數據將會被屏蔽掉(常用在繪制相關系數矩陣圖)

3.實例

用Python生成heatmap比較簡單,導入googlmap然後把經緯度plot在地圖上就可以瞭。最後把heatmap生成為一個html文件,可以放大和縮小。

import gmplot       # plot the locations on google map
import numpy as np    # linear algebra
import pandas as pd    # data processing, CSV file I/O (e.g. pd.read_csv())
import matplotlib.pyplot as plt # data visualization
import seaborn as sns    # data visualization
df = pd.read_csv("data.csv")
df = pd.DataFrame(df)
df_td = pd.read_csv("datacopy.csv")
df_td = pd.DataFrame(df_td)
# print df.dtypes
print (df.shape)
print (df_td.shape)
def plot_heat_map(data, number):
  latitude_array = data['INTPTLAT'].values
  latitude_list = latitude_array.tolist()
  print(latitude_list[0])
  Longitude_array = data['INTPTLONG'].values
  longitude_list = Longitude_array.tolist()
  print(longitude_list[0])
  # Initialize the map to the first location in the list
  gmap = gmplot.GoogleMapPlotter(latitude_list[0], longitude_list[0], 10)
  # gmap.scatter(latitude_list, longitude_list, edge_width=10)
  gmap.heatmap(latitude_list, longitude_list)
  # Write the map in an HTML file
  # gmap.draw('Paths_map.html')
  gmap.draw('{}_Paths_map.html'.format(number))
plot_heat_map(df,'4')

內容擴展:

實例擴展1

# -*- coding: utf-8 -*-
from pyheatmap.heatmap import HeatMap
import numpy as np
N = 10000
X = np.random.rand(N) * 255 # [0, 255]
Y = np.random.rand(N) * 255
data = []
for i in range(N):
 tmp = [int(X[i]), int(Y[i]), 1]
 data.append(tmp)
heat = HeatMap(data)
heat.clickmap(save_as="1.png") #點擊圖
heat.heatmap(save_as="2.png") #熱圖

實例擴展2

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import LogNorm
import numpy as np
x, y = np.random.rand(10), np.random.rand(10)
z = (np.random.rand(9000000)+np.linspace(0,1, 9000000)).reshape(3000, 3000)
plt.imshow(z+10, extent=(np.amin(x), np.amax(x), np.amin(y), np.amax(y)),
  cmap=cm.hot, norm=LogNorm())
plt.colorbar()
plt.show()

以上就是python熱力圖實現簡單方法的詳細內容,更多關於python熱力圖的原理實現的資料請關註WalkonNet其它相關文章!