合并两个热图(不同大小),保持相同的像元大小,相同的色条和相同的x轴(GridSpec),

时间:2019-03-20 14:27:20

标签: matplotlib seaborn heatmap

我正在尝试合并两个具有不同行号的热图。我想保持两者的单元格大小相同,并且它们具有相同的x轴和相同的颜色栏。

这是我到目前为止尝试过的。

body {
  text-align: center;
}

img {
  border-radius: 50%;
}

table,
th,
td {
  border: 1px solid black;
}

.container {
  position: relative;
  width: 20%;
  display: inline-block;
}

.image {
  opacity: 1;
  display: block;
  max-width: 50%;
  height: auto;
  transition: .5s ease;
  backface-visibility: hidden;
}

.middle {
  transition: .5s ease;
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 3%;
  transform: translate(0%, -20%);
  -ms-transform: translate(50%, 50%);
  text-align: center;
}

.container:hover .image {
  opacity: 0.5;
}

.container:hover .middle {
  opacity: 1;
}

.text {
  background-color: #dbe0dc;
  color: black;
  font-size: 16px;
  padding: 10px 20px;
}

.column {
  float: left;
  width: 33.33%;
  padding: 5px;
}


}

以下是输出:

enter image description here

非常感谢您。

1 个答案:

答案 0 :(得分:0)

您可以玩height_ratios中的GridSpec

import matplotlib.gridspec as gs

site = np.random.random(size=(2,20))
country = np.random.random(size=(20,20))

fig = plt.figure()
N_rows_site, _ = site.shape
N_rows_country, _ = country.shape

grid=gs.GridSpec(2,2, height_ratios=[N_rows_site,N_rows_country], width_ratios=[50,1])

ax1 = fig.add_subplot(grid[0,0])
ax2 = fig.add_subplot(grid[1,0], sharex=ax1)
cax = fig.add_subplot(grid[:,1])

sns.heatmap(site, cmap="inferno", ax=ax1, cbar_ax=cax)
sns.heatmap(country, cmap="inferno", ax=ax2, cbar_ax=cax)
plt.setp(ax1.get_xticklabels(), visible=False)

enter image description here

行数不同:

site = np.random.random(size=(10,20))
country = np.random.random(size=(20,20))

enter image description here