由于某种原因,来自pyplot的tight_layout()函数停止在机器上工作。几个月来我一直在我的一个程序中使用它,它决定停止工作(我意识到我可能在某处造成了意外的改变,但是我不知道它会在哪里)。任何其他matplotlib或pyplot函数都可以正常工作,但每当我调用tight_layout时,我都会得到
module 'matplotlib.pyplot' has no attribute 'tight_layout'
显然不是这样。
例如,即使此代码来自官方的tight_layout指南(https://matplotlib.org/users/tight_layout_guide.html)
from matplotlib import pyplot as plt
plt.rcParams['savefig.facecolor'] = "0.8"
def example_plot(ax, fontsize=12):
ax.plot([1, 2])
ax.locator_params(nbins=3)
ax.set_xlabel('x-label', fontsize=fontsize)
ax.set_ylabel('y-label', fontsize=fontsize)
ax.set_title('Title', fontsize=fontsize)
plt.close('all')
fig, ax = plt.subplots()
example_plot(ax, fontsize=24)
plt.tight_layout()
会产生错误。
我重新安装了matplotlib软件包几次并重新安装了我的IDE(Spyder)无济于事。我在这一点上非常无能,所以任何输入都会很棒。
答案 0 :(得分:2)
我不认为某些模块会突然失去其方法。您可以检查代码中的方法,
import matplotlib.pyplot as plt
with open(plt.__file__[:-1],"r") as f:
for line in f:
if "tight_layout" in line:
print(line)
这会导致打印两行。
def tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None):
# and
fig.tight_layout(pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
如果不是这种情况,请检查文件上次更改的时间
import os
from datetime import datetime
f = datetime.fromtimestamp(os.path.getmtime(plt.__file__[:-1]))
print("Modification time: {}".format(f))
并与您采取的任何操作,安装,卸载,修改代码等进行比较。