Matplotlib如何设置不同大小的子图?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我需要在一个数字中添加两个子图。一个子图需要比第二个(同样的高度)宽三倍左右。我用GridSpeccolspan但是我想用figure这样我就可以保存到PDF格式了。我可以使用figsize参数,但是如何更改第二个图的大小?

提问于
用户回答回答于

你可以用gridspecfigure:

import numpy as np
import matplotlib.pyplot as plt 
from matplotlib import gridspec

# generate some data
x = np.arange(0, 10, 0.2)
y = np.sin(x)

# plot it
fig = plt.figure(figsize=(8, 6)) 
gs = gridspec.GridSpec(1, 2, width_ratios=[3, 1]) 
ax0 = plt.subplot(gs[0])
ax0.plot(x, y)
ax1 = plt.subplot(gs[1])
ax1.plot(y, x)

plt.tight_layout()
plt.savefig('grid_figure.pdf')

用户回答回答于

使用subplots函数和传递宽度比与gridspec_kw:

import numpy as np
import matplotlib.pyplot as plt 

# generate some data
x = np.arange(0, 10, 0.2)
y = np.sin(x)

# plot it
f, (a0, a1) = plt.subplots(1,2, gridspec_kw = {'width_ratios':[3, 1]})
a0.plot(x,y)
a1.plot(y,x)

f.tight_layout()
f.savefig('grid_figure.pdf')

扫码关注云+社区