首先要遵循一些设置代码:
import numpy as np
import matplotlib.pyplot as plt
figure, (picture, intensity) = plt.subplots(nrows=2, figsize=(15, 3))
figure.set_dpi(80)
picture.imshow(np.random.uniform(size=(5, 50)))
intensity.plot(np.random.random(size=641))
请注意对plt.subplots
(s
结尾很重要;没有s
) 的调用需要 matplotlib 1.1 或更高版本。但是您的原始示例设置也可以。另请注意,轴被缩放为 700 而不是 640,因为 matplotlib 更愿意在 700 处绘制一个刻度,并且认为额外的空白并不是什么大问题。
编辑:我只是想指出figsize
参数、dpi
设置和picture
轴与原始问题无关,但我添加它们以匹配原始示例。
正如克里斯提到的,你可以打电话
intensity.set_xlim((0, 640))
您可以改为传入关键字参数以仅调整所需的参数:
intensity.set_xlim(right=640)
如果您知道需要严格的轴限制,但又不想手动设置,则轴对象可以根据已绘制的数据计算出来。
intensity.autoscale(tight=True)
或者,如果您只想缩放x
-axis:
intensity.autoscale(axis='x', tight=True)
注意autoscale
是特殊的,因为如果您的数据限制发生变化(例如,如果您绘制另一个具有 680 个点的数据集),它将重新调整。
或者,您可以使用以下margins
方法:
intensity.margins(0)
这会将轴限制和 x
轴限制设置为数据限制并y
添加指定的填充——在本例中为 0。如果您实际上想要在 -y
方向上留一些间距,那么您可以编写:
intensity.margins(0, 0.1)
这增加了等于y
数据间隔的 10% 的间距。这些函数都做你想做的事,但它们不同的调用签名(和行为)在不同的情况下很有用。
编辑set_xlim
:根据 Chris 的建议修复了关键字参数。