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

2022-03-11 13:25:41 浏览数 (2)

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

代码示例

代码语言:javascript复制
from matplotlib import cm
from numpy import matrix
#heatmap风格
def draw_heatmap(data, xlabels, ylabels):
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
    matplotlib.rcParams['axes.unicode_minus'] = False  # 正常显示负号
    vmin=np.amin(matrix(data))
    vmax = np.amax(matrix(data))
    cmap = cm.Blues
    figure = plt.figure(facecolor='w', figsize=(11, 7))
    ax = figure.add_subplot(1, 1, 1)
    ax.set_yticks(range(len(ylabels)))
    ax.set_yticklabels(ylabels)
    ax.set_xticks(range(len(xlabels)))
    ax.set_xticklabels(xlabels)
    map = ax.imshow(data, interpolation='nearest', cmap=cmap, aspect='auto', vmin=vmin, vmax=vmax)
    cb = plt.colorbar(mappable=map, cax=None, ax=None, shrink=0.5)
    plt.xticks(rotation=90)  # 将字体进行旋转
    plt.yticks(rotation=360)
    plt.yticks(fontsize=8)
    plt.show()

colname=[i for i in gdpdf.columns if i not in ['区域', '地区','total']][20::-1]
rowname=[i for i in gdpdf.index]
data=gdpdf.loc[:,colname].values
draw_heatmap(data,colname,rowname)

colname=[i for i in rkdf.columns if i not in ['区域', '地区','total']][20::-1]
rowname=[i for i in rkdf.index]
data=rkdf.loc[:,colname].values
draw_heatmap(data,colname,rowname)

0 人点赞