为了账号安全,请及时绑定邮箱和手机立即绑定

Matplotlib不同大小的子图

Matplotlib不同大小的子图

qq_遁去的一_1 2019-08-30 11:00:37
Matplotlib不同大小的子图我需要在图中添加两个子图。一个子图需要大约是第二个(相同高度)的三倍。我使用GridSpec和colspan论证完成了这个,但我想这样做,figure所以我可以保存为PDF。我可以使用figsize构造函数中的参数调整第一个数字,但是如何更改第二个图的大小?
查看完整描述

5 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

另一种方法是使用该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')


查看完整回答
反对 回复 2019-08-30
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

你可以使用gridspec和figure:


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')


查看完整回答
反对 回复 2019-08-30
?
慕容森

TA贡献1853条经验 获得超18个赞

可能最简单的方法是使用subplot2grid,在使用GridSpec定制子图的位置中描述。


ax = plt.subplot2grid((2, 2), (0, 0))

等于


import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(2, 2)

ax = plt.subplot(gs[0, 0])

所以bmu的例子变成了:


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

fig = plt.figure(figsize=(8, 6))

ax0 = plt.subplot2grid((1, 3), (0, 0), colspan=2)

ax0.plot(x, y)

ax1 = plt.subplot2grid((1, 3), (0, 2))

ax1.plot(y, x)


plt.tight_layout()

plt.savefig('grid_figure.pdf')


查看完整回答
反对 回复 2019-08-30
  • 5 回答
  • 0 关注
  • 2190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信