Combining two heat maps in seaborn

后端 未结 2 1207
抹茶落季
抹茶落季 2021-02-09 05:27

I have 2 data tables with the dimensions 4x25. Each table is from a different point in time, but has exactly the same meta data, in essence the same column and row

2条回答
  •  自闭症患者
    2021-02-09 06:14

    One possible way of showing two seaborn heatmaps side by side in a figure would be to plot them to individual subplots. One may set the space between the subplots to very small (wspace=0.01) and position the respective colorbars and ticklabels outside of that gap.

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import seaborn as sns
    
    df =  pd.DataFrame(np.random.rand(25,4), columns=list("ABCD"))
    df2 = pd.DataFrame(np.random.rand(25,4), columns=list("WXYZ"))
    
    fig, (ax,ax2) = plt.subplots(ncols=2)
    fig.subplots_adjust(wspace=0.01)
    sns.heatmap(df, cmap="rocket", ax=ax, cbar=False)
    fig.colorbar(ax.collections[0], ax=ax,location="left", use_gridspec=False, pad=0.2)
    sns.heatmap(df2, cmap="icefire", ax=ax2, cbar=False)
    fig.colorbar(ax2.collections[0], ax=ax2,location="right", use_gridspec=False, pad=0.2)
    ax2.yaxis.tick_right()
    ax2.tick_params(rotation=0)
    plt.show()
    

提交回复
热议问题