如何删除matplotlib图底部的空白?

Jim*_*Jim 7 python matplotlib

我查看了matplotlib用户指南,似乎无法找到一种方法来删除在我的图形底部生成的空白区域.

fig = plt.figure(1,figsize=(5,10))
axis = fig.add_subplot(211, autoscale_on=False,xlim=(1,10),ylim=(0,1))
Run Code Online (Sandbox Code Playgroud)

我在图表上使用的配置.我尝试使用frameon = False,但没注意到它做了什么.我想图表占据输出图像的整个大小.

这是照片: 请注意,图表的一半是底部的半白色空间.

我想删除所有这些空白区域.提供的答案都没有这样做......我错过了别的什么吗?

Joh*_*yon 11

你正在为第二个情节创造空间而不是使用它.这条线

axis = fig.add_subplot(211, autoscale_on=False,xlim=(1,10),ylim=(0,1))
Run Code Online (Sandbox Code Playgroud)

在图中添加一个子图,但211意味着"两个图高一个图宽,位置1".你可以在另一个子图调用下添加第二个图,然后传递"212"(位置2).

要创建单个子图并修复您的问题,请将您的add_subplot调用更改为:

axis = fig.add_subplot(111, autoscale_on=False,xlim=(1,10),ylim=(0,1))
Run Code Online (Sandbox Code Playgroud)

111一个情节,第一个位置的含义之一.


unu*_*tbu 7

如果要将输出保存到文件,则可以使用bbox_inches='tight'

import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure(1,figsize=(5,10))
axis = fig.add_subplot(211, autoscale_on=False, xlim=(1,10), ylim=(0,1))
N=100
x = np.linspace(1,10, N)
y = np.cumsum(np.random.random(N)-0.5)
y -= y.min()
y /= y.max()
plt.plot(x,y)
plt.savefig('test.png', bbox_inches='tight', pad_inches=0.0)
Run Code Online (Sandbox Code Playgroud)