Matplotlib: set axis tight only to x or y axis
我的情节是这样的:
显然左右两边是浪费空间,所以我设置了
1 | plt.axis('tight') |
但这给了我这样的情节:
xlim 现在看起来不错,但是 ylim 太紧了,不适合剧情。
我想知道,如果我只能将
所以情节可能看起来像这样:
我当然可以通过
手动执行此操作
1 | plt.gca().set_xlim(left=-10, right=360) |
但恐怕这不是一个非常优雅的解决方案。
您想使用
使用函数式 API,您可以使用
应用紧密的 x 轴
1 | plt.autoscale(enable=True, axis='x', tight=True) |
或者如果您使用的是面向对象的 API,您将使用
1 2 | ax = plt.gca() # only to illustrate what `ax` is ax.autoscale(enable=True, axis='x', tight=True) |
为了完整起见,
我只是将以下内容放在我知道我希望我的 xlims 拥抱我的数据的那些脚本的开头:
1 2 | import matplotlib.pyplot as plt plt.rcParams['axes.xmargin'] = 0 |
如果我决定在同一个脚本中为单个绘图添加一些空白缓冲区,我会手动执行:
1 | plt.xlim(lower_limit, upper_limit) |
虽然接受的答案有效,而且我使用了一段时间,但我改用了这种策略,因为每个脚本我只需要记住一次。