Python 如何在seaborn绘图中设置单个子图形大小?

Python 如何在seaborn绘图中设置单个子图形大小?,python,python-3.x,matplotlib,seaborn,Python,Python 3.x,Matplotlib,Seaborn,我有一个代码可以绘制多个图-Seaborn的一个图中有一个热图和一个条形图。然而,两个图的大小是相同的,即,整个图的一半是热图,另一半是条形图。有没有一种方法可以控制单独的绘图大小,使热图占据绘图大小的75%,而条形图只占绘图大小的25% 参考代码: ig, ax = plt.subplots(1, 2, figsize=(7, 5)) heatmap = np.random.uniform(0, 1, size=(12, 12)) sns.heatmap(heatmap_scores, lin

我有一个代码可以绘制多个图-Seaborn的一个图中有一个热图和一个条形图。然而,两个图的大小是相同的,即,整个图的一半是热图,另一半是条形图。有没有一种方法可以控制单独的绘图大小,使热图占据绘图大小的75%,而条形图只占绘图大小的25%

参考代码:

ig, ax = plt.subplots(1, 2, figsize=(7, 5))
heatmap = np.random.uniform(0, 1, size=(12, 12))
sns.heatmap(heatmap_scores, linewidth=0.5, cmap="OrRd", ax=ax[0])
ax[0].set_xlabel('Head')
ax[0].set_ylabel('Layer')
ax[0].set_title('Attention Heatmap')

x = np.mean(heatmap_scores, axis=1)
y = np.arange(0, 12)
sns.barplot(x=x, y=y, ax=ax[1], orient='h', color='r', dodge=False)
ax[1].set_title('Layer Average')
ax[1].set(yticklabels=[])

plt.savefig('fig.png')
plt.close()
您可以自定义选项,通过键
gridspec\u kw
,将它们传递到
子地块:

fig,ax=plt.子图(1,2,figsize=(7,5),gridspec_-kw={'width_-ratio':[.75,.25]})

您可以自定义选项,通过键
gridspec\u kw
,将它们传递到
子地块:

fig,ax=plt.子图(1,2,figsize=(7,5),gridspec_-kw={'width_-ratio':[.75,.25]})

非常感谢您!这很有效,非常感谢!这起作用了。