matplotlib 图形大小与颜色条

2 投票
1 回答
1199 浏览
提问于 2025-04-18 09:56

我想制作两个图。第二个图和第一个图是一样的,唯一的不同是它上面叠加了一张图片和相应的颜色条。我需要这个图来做演示,以便正确叠加。我的代码如下:

import matplotlib as mpl
# first figure 
fig = mpl.pylab.figure(figsize=(10, 7))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x,y)
ax.set_xlabel(r'x')
ax.set_ylabel(r'y')
ax.set_xlim([0,1])
ax.set_ylim([0,1])
mpl.pylab.savefig('one.pdf',bbox_inches='tight')

# second figure
fig = mpl.pylab.figure(figsize=(10, 7))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x,y)
ax.set_xlabel(r'x')
ax.set_ylabel(r'y')
ax.set_xlim([0,1])
ax.set_ylim([0,1])
im = ax.imshow(image,aspect='auto',origin='lower',extent=(0,1,0.5,1))
cb = fig.colorbar(im, orientation='vertical')
cb.set_label(r'p$_e$ [Pa]', fontsize = 18)
mpl.pylab.savefig('two.pdf',bbox_inches='tight')

问题是我希望两个图的画布(我想这个名字是对的,也就是坐标轴和标签占据的空间)完全一样,而第二个图因为颜色条的原因变小了。我该如何正确设置这两个图的大小呢?

1 个回答

0

可以看看 这个帖子

你也可以参考 这个例子

我建议你可以把两个图放在同一个图上,做成一个网格,或者像 这个例子那样做一个单独的颜色条

import matplotlib as mpl
# first plot 
plt.subplot(131)
...
# second plot
plt.subplot(132)
...

#colorbar
plt.subplot(133)
...

撰写回答