今天就跟大家聊聊有关使用python怎么实现一个热力图效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联是少有的网站制作、成都做网站、营销型企业网站、小程序开发、手机APP,开发、制作、设计、卖链接、推广优化一站式服务网络公司,从2013年创立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评1.导入相关的packages
import seaborn as sns %matplotlib inline sns.set(font_scale=1.5)
vmax:设置颜色带的较大值
vmin:设置颜色带的最小值
cmap:设置颜色带的色系
center:设置颜色带的分界线
annot:是否显示数值注释
fmt:format的缩写,设置数值的格式化形式
linewidths:控制每个小方格之间的间距
linecolor:控制分割线的颜色
cbar_kws:关于颜色带的设置
mask:传入布尔型矩阵,若为矩阵内为True,则热力图相应的位置的数据将会被屏蔽掉(常用在绘制相关系数矩阵图)
用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怎么实现一个热力图效果有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。