我正在尝试从我创建的情节中删除空白区域,请参阅下面的照片:
有可能看到,右侧和底部都有一个大的白点,如何修复它?,按照我的脚本进行操作:
fig = plt.figure(figsize=(7,7))
ax1 = plt.subplot2grid((4,3), (0,0),)
ax2 = plt.subplot2grid((4,3), (1,0),)
ax3 = plt.subplot2grid((4,3), (0,1),)
ax4 = plt.subplot2grid((4,3), (1,1),)
data = self.dframe[i]
tes = print_data(data, self.issues, self.color, self.type_user)
tes.print_top(data=data, top=10, ax=ax1, typegraph="hbar", problem=self.issues[i], tone=self.color[i])
tes.print_top(data=data, top=10, ax=ax2, typegraph="prod_bar", problem=self.issues[i], tone=self.color[i])
tes.print_top(data=data, top=10, ax=ax3, typegraph="reg_hbar", problem=self.issues[i], tone=self.color[i])
tes.print_top(data=data, top=10, ax=ax4, typegraph=self.type_user, problem=self.issues[i], tone=self.color[i])
problem = self.issues[i]
plt.tight_layout()
name = problem + str('.PNG')
plt.close(fig)
fig.savefig(name)
任何帮助都将受到高度赞赏
答案 0 :(得分:4)
您正在创建太多的子图!
如果我们看一下这一行:
ax1 = plt.subplot2grid((4,3), (0,0),)
我们可以看到给subplot2grid的第一个参数是要制作的子图网格的尺寸,在这种情况下是4行和3列。然后,您将在图的左上角的子图中绘制(给出的第二个参数),这留下了很多未使用的空间。
因此,要解决此问题,请使用以下方法减少子图的数量:
ax1 = plt.subplot2grid((2,2), (0,0),)
完整示例:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randn(25)
fig = plt.figure(figsize=(7,7))
ax1 = plt.subplot2grid((2,2), (0,0),)
ax2 = plt.subplot2grid((2,2), (1,0),)
ax3 = plt.subplot2grid((2,2), (0,1),)
ax4 = plt.subplot2grid((2,2), (1,1),)
ax1.plot(data)
ax2.plot(data)
ax3.plot(data)
ax4.plot(data)
plt.show()
,并提供:
答案 1 :(得分:1)
plt.subplots_adjust(left=0.09, bottom=0.07, right=0.98, top=0.97, wspace=0.2 , hspace=0.17 )
调整窗口。
但问题是你的情节中的很多空间都是空的
也许你应该改变
plt.subplot2grid((4,3)
...到plt.subplot2grid((2,2)