改变matplotlib子图的大小

时间:2017-06-13 01:01:33

标签: python matplotlib subplot

是否有一种简单的方法可以修改此代码,以便绘图更大而不改变轴上的比例?

import numpy as np
import matplotlib.pyplot as plt
import math
%matplotlib inline

a, c = -10, 10                                
x = np.linspace(a,c,100)                         
x = np.array(x)
def y(x): return np.arctan(x)                       

h = 0.0000001                                   

def grad(x,h): return (y(x+h)-y(x))/h          
m = grad(x,h)

plt.figure(1)
plt.subplot(121)
plt.plot(x, y(x), 'b')
plt.xlim([a,c])
plt.ylim([min(y(x)),max(y(x))])
plt.gca().set_aspect('equal', adjustable='box') 

plt.subplot(122)
plt.plot(x,m,'b')
plt.xlim([a,c])
plt.ylim([min(m),max(m)])
plt.gca().set_aspect('equal', adjustable='box')

plt.subplots_adjust(wspace = 0.5)
plt.show()

enter image description here

如果我摆脱plt.gca().set_aspect('equal', adjustable='box'),那么这些地块的尺寸合适,但它们不会扩展。

1 个答案:

答案 0 :(得分:5)

子图缩小,使其方面相等。这似乎是理想的;因此,“更大”指的是什么并不是很清楚。

你仍然可以使数字更大,例如

plt.figure(1, figsize=(12,2))

然后使用plt.subplots_adjustenter image description here

调整边距和间距

您也可以让轴缩放,只设置与数据相等的方面,

plt.gca().set_aspect('equal', adjustable='datalim')

enter image description here

最后绘制彼此之下的子图也使它们更大。因此,您可以使用plt.subplot(211)plt.subplot(212)enter image description here