JL1*_*515 5 visualization heatmap python-2.7 pandas seaborn
我可以生成一个热量图,其数量覆盖在图形上,作为数据透视表的视觉效果.我想在热图旁边有一列显示行的总和,我希望在热图下面有一行显示列的总和.
有没有办法将其纳入热图图中?pv
是我用来生成热图图形的数据透视表.我想在图表的右侧有一列,其中每列的总和值.同样,我想在图表的底部有一行,其中每列的总和值.
fig = plt.figure(figsize = (20,10))
mask = np.zeros_like(pv)
mask[np.tril_indices_from(mask)] = True
#with sns.axes_style("white"):
ax = sns.heatmap(pv, annot=True, cmap="YlGnBu",mask=mask, linecolor='b', cbar = False)
ax.xaxis.tick_top()
plt.xticks(rotation=90)
Run Code Online (Sandbox Code Playgroud)
@Paul H subplot建议确实适用于我的目的.下面的代码让我看到了数字.不确定这是否是资源效率最高的方法,但它让我得到了我所需要的.
fig = plt.figure(figsize=(20,15))
ax1 = plt.subplot2grid((20,20), (0,0), colspan=19, rowspan=19)
ax2 = plt.subplot2grid((20,20), (19,0), colspan=19, rowspan=1)
ax3 = plt.subplot2grid((20,20), (0,19), colspan=1, rowspan=19)
mask = np.zeros_like(pv)
mask[np.tril_indices_from(mask)] = True
sns.heatmap(pv, ax=ax1, annot=True, cmap="YlGnBu",mask=mask, linecolor='b', cbar = False)
ax1.xaxis.tick_top()
ax1.set_xticklabels(pv.columns,rotation=40)
sns.heatmap((pd.DataFrame(pv.sum(axis=0))).transpose(), ax=ax2, annot=True, cmap="YlGnBu", cbar=False, xticklabels=False, yticklabels=False)
sns.heatmap(pd.DataFrame(pv.sum(axis=1)), ax=ax3, annot=True, cmap="YlGnBu", cbar=False, xticklabels=False, yticklabels=False)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1407 次 |
最近记录: |