python - 改变 matplotlib 子图的大小

标签 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') 绘图的大小合适,但无法按比例缩放。

最佳答案

子图被缩小,使得它们的纵横比相等。这似乎是需要的;因此,“更大”指的是什么并不十分清楚。

您仍然可以将图形放大,例如

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

然后使用 plt.subplots_adjust 调整边距和间距。 enter image description here

你也可以让坐标轴缩放,只设置数据的等宽,

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

enter image description here

最后,将子图绘制在彼此下方也会使它们变大。所以你可以使用 plt.subplot(211)plt.subplot(212)enter image description here

关于python - 改变 matplotlib 子图的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510831/

相关文章:

python - Matplotlib:从主轴映射值的次轴

gnuplot - 如何在 gnuplot 多图模式下选择子图

python - 检查列的单元格是否以特定字符串开头 [Pandas]

python - 无法在 PyCharm 中定义有关名称的错误警告

python - NameError:在封闭范围内赋值之前引用了自由变量 'player_one_rps'

java - 为什么从 Java 调用我的 Python 程序会失败?

python - 如何在不同的子图中绘制 pcolor colorbar - matplotlib

python - 自定义 matplotlib 偏移中的偏移

python - 绘制颜色条时强制方形子图

python - 如何更改子图刻度标签的旋转