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

Matplotlib不同大小的子图

Matplotlib不同大小的子图

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

3 回答

?
隔江千里

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


另一种方法是使用该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-15
?
交互式爱情

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

你可以使用gridspecfigure

import numpy as npimport matplotlib.pyplot as plt 
from matplotlib import gridspec# generate some datax = np.arange(0, 10, 0.2)y = np.sin(x)# plot itfig = 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-15
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

可能最简单的方法是使用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 npimport matplotlib.pyplot as plt# generate some datax = np.arange(0, 10, 0.2)y = np.sin(x)# plot itfig = 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-15
  • 3 回答
  • 0 关注
  • 2701 浏览
慕课专栏
更多

添加回答

举报

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