通过Heatmap热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的发展趋势、疏密程度、频率高低。但也由于很直观,热图在数据表现的准确性并不能保证。

代码示例

  1. from matplotlib import cm

  2. from numpy import matrix

  3. #heatmap风格

  4. def draw_heatmap(data, xlabels, ylabels):

  5. matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文

  6. matplotlib.rcParams['axes.unicode_minus'] = False # 正常显示负号

  7. vmin=np.amin(matrix(data))

  8. vmax = np.amax(matrix(data))

  9. cmap = cm.Blues

  10. figure = plt.figure(facecolor='w', figsize=(11, 7))

  11. ax = figure.add_subplot(1, 1, 1)

  12. ax.set_yticks(range(len(ylabels)))

  13. ax.set_yticklabels(ylabels)

  14. ax.set_xticks(range(len(xlabels)))

  15. ax.set_xticklabels(xlabels)

  16. map = ax.imshow(data, interpolation='nearest', cmap=cmap, aspect='auto', vmin=vmin, vmax=vmax)

  17. cb = plt.colorbar(mappable=map, cax=None, ax=None, shrink=0.5)

  18. plt.xticks(rotation=90) # 将字体进行旋转

  19. plt.yticks(rotation=360)

  20. plt.yticks(fontsize=8)

  21. plt.show()

  22. colname=[i for i in gdpdf.columns if i not in ['区域', '地区','total']][20::-1]

  23. rowname=[i for i in gdpdf.index]

  24. data=gdpdf.loc[:,colname].values

  25. draw_heatmap(data,colname,rowname)

  26. colname=[i for i in rkdf.columns if i not in ['区域', '地区','total']][20::-1]

  27. rowname=[i for i in rkdf.index]

  28. data=rkdf.loc[:,colname].values

  29. draw_heatmap(data,colname,rowname)


Python可视化分析笔记(用heatmap展示GDP和人口数据)_显示中文

Python可视化分析笔记(用heatmap展示GDP和人口数据)_显示中文_02