Matplotlib:仅将轴设置为x轴或y轴

时间:2016-06-01 02:08:41

标签: python matplotlib

我的情节看起来像这样:

enter image description here

显然,左侧和右侧是浪费空间,所以我设置

plt.axis('tight')

但这给了我这样的情节:

enter image description here

xlim现在看起来,但ylim对于剧情来说太紧了。

我想知道,如果我的情况下只能将axis(tight)设置为x轴吗?

因此情节可能如下所示:

enter image description here

我可以通过

手动执行此操作
plt.gca().set_xlim(left=-10, right=360)

但我担心这不是一个非常优雅的解决方案。

2 个答案:

答案 0 :(得分:31)

您想使用autoscale中的matplotlib matplotlib.axes.Axes class方法。

enter image description here

使用功能API,使用

应用紧x轴
plt.autoscale(enable=True, axis='x', tight=True)

或者如果您使用面向对象的API,则使用

ax = plt.gca()  # only to illustrate what `ax` is
ax.autoscale(enable=True, axis='x', tight=True)

enter image description here

为了完整起见,axis kwarg可以使用'x''y''both',其中默认值为'both'

答案 1 :(得分:0)

我只是将以下内容放在这些脚本的开头,我知道我希望我的xlim拥抱我的数据:

import matplotlib.pyplot as plt
plt.rcParams['axes.xmargin'] = 0

如果我决定在同一脚本中为单个绘图添加一些空白缓冲区,则可以通过以下方式手动进行操作:

plt.xlim(lower_limit, upper_limit)

虽然接受的答案有效,并且是我一段时间使用的答案,但我还是选择了此策略,因为我发现它很容易记住。