python +gis 点数据转栅格数据 绘制矩阵图

python +gis 点数据转栅格数据 绘制矩阵图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #将全局字体设为黑体
mpl.rcParams['axes.unicode_minus']=False
#import rain_contour
#from mpl_toolkits.basemap import Basemap
import matplotlib
df = pd.DataFrame(np.random.random([4, 5]),
     columns=['A', 'B', '0','D','E'], index=['first', 'second', 'third','4'])
print(df)
#相关程度分析
import seaborn as sns
dataHappiness = df

f, ax= plt.subplots(figsize = (7, 5))
colnm = dataHappiness.columns.tolist()  
mcorr = dataHappiness[colnm].corr(method="spearman")  # 相关矩阵
mask = np.zeros_like(mcorr, dtype=np.bool)  # 构造相关矩阵 bool型次
#mask[np.triu_indices_from(mask)] = True  # 设置对角线

cmap = sns.diverging_palette(200, 8, as_cmap=True)  #设置颜色sns.husl_palette(10, l=.4)
sns.heatmap(mcorr, mask=mask, cmap=cmap, vmax = 1,vmin=-1, linewidths=1, cbar =True,
            cbar_kws={'label': u'相关程度'}, square=True, annot=True,
            annot_kws={'size':10,'color':'black'}, 
            fmt='0.1f', ax=ax)  # 热力图
ax.set_title('相关矩阵图',fontsize=20)
ax.figure.axes[-1].yaxis.label.set_size(10)#设置图例标题大小

ax.tick_params(axis='y',labelsize=10) # y轴字体大小
ax.tick_params(axis='x',labelsize=10) # x轴字体大小
plt.savefig('test.tif')

python +gis 点数据转栅格数据 绘制矩阵图_第1张图片
python +gis 点数据转栅格数据 绘制矩阵图_第2张图片
总结:通过这种方法可以实现矩阵图,实现点数据显示为栅格数据,附上GIS信息

相关参考:

python画热力图(相关系数矩阵图):https://blog.csdn.net/henbile/article/details/80241597

sns.heatmap(pd.DataFrame(np.round(a,2), columns = ['a', 'b', 'c'], index = range(1,5)), 
                annot=True, vmax=1,vmin = 0, xticklabels= True, yticklabels= True, square=True, cmap="YlGnBu")

注:直接pd.DataFrame 也可以做矩阵图

你可能感兴趣的:(python,绘图,GIS,python,点数据转栅格数据GIS,矩阵图)