在图表边缘处添加边距

10 投票
1 回答
5333 浏览
提问于 2025-04-17 13:29

我在使用matplotlib绘图的时候,经常会遇到这样的图:

频率响应沿着顶部边缘

你会发现函数的部分看不清,因为它正好贴在图的边缘上。

有没有什么方法可以自动添加一些边距,这样图看起来就像这样:

频率响应带有一点噪声

1 个回答

19

你可以使用 ax.margins() 来设置图表的 边距。下面是一个例子:

In [1]: fig, ax = plt.subplots()

In [2]: ax.plot(np.arange(10), '-o')
Out[2]: [<matplotlib.lines.Line2D at 0x302fb50>]

没有边距

In [1]: fig, ax = plt.subplots()

In [2]: ax.margins(0.05)

In [3]: ax.plot(np.arange(10), '-o')
Out[3]: [<matplotlib.lines.Line2D at 0x302fb50>]

有边距

你也可以只设置 x 轴或 y 轴的边距。不过,这似乎不是 matplotlibrc 的一个选项,所以你不能简单地把它设为默认行为(也就是说,它不是完全自动的)。我在 GitHub 上开了一个问题 来请求这个功能。

撰写回答