can';t使用tightlayout时,matplotlib中不会出现错误

can';t使用tightlayout时,matplotlib中不会出现错误,matplotlib,cartopy,Matplotlib,Cartopy,在下面的代码中,如果调用tightlayout,取消对该行的注释,则matplotlib中会出现崩溃。如果有任何建议,我将不胜感激。为什么会发生这种情况 import matplotlib.pyplot as plt import cartopy.crs as ccrs fig= plt.figure(figsize=(12, 7)) ax= fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) ax.stock_img() # plt.

在下面的代码中,如果调用
tightlayout
,取消对该行的注释,则matplotlib中会出现崩溃。如果有任何建议,我将不胜感激。为什么会发生这种情况

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
fig= plt.figure(figsize=(12, 7))
ax= fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
ax.stock_img()
# plt.tight_layout()
plt.show()

以下是回溯:

回溯(最近一次呼叫最后一次): 文件“test.py”,第6行,在 plt.紧_布局() 包装器中的文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\cbook\deprecation.py”,第451行 返回函数(*args,**kwargs) 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\pyplot.py”,第1490行,紧凑布局 gcf().紧凑布局(pad=pad,h\U pad=h\U pad,w\U pad=w\U pad,rect=rect) 包装器中的文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\cbook\deprecation.py”,第411行 返回函数(*内部参数,**内部参数) 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\figure.py”,第2613行,紧凑布局 kwargs=抓紧布局图( 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\tight\u layout.py”,第303行,如图所示 kwargs=自动调整子地块(图、渲染器、, 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\tight\u layout.py”,第84行,在auto\u adjust\u子PlotPars中 bb+=[ax.get\u tightbox(渲染器,仅用于布局\u=True)] 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\axes\u base.py”,第4203行,在get\u Tightbox中 bbox=a.get\u tightbox(渲染器) 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\artist.py”,第286行,在get\u Tightbox中 bbox=bbox.intersection(bbox,clip\u path.get\u extents()) 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\matplotlib\path.py”,第603行,在get\U区段中 返回Bbox([xys.min(轴=0),xys.max(轴=0)]) 文件“C:\ProgramData\Anaconda3\envs\py38\lib\site packages\numpy\core\u methods.py”,第43行,在amin中 返回umr_最小值(a、轴、无、输出、保留、首字母、其中) ValueError:零大小数组到没有标识的最小缩减操作


我将Python 3.8.5与matplotlib 3.3.1和CartoPy 0.18.0一起使用。

我有完全相同的配置,并且能够重现您的错误。但在寻找类似的回溯后,我终于找到了将matplotlib从3.3.1升级到3.3.2解决问题的地方

因此,如果您第一次在终端中运行(使用pip或conda)

然后,确保Matplotlib已更新为3.3.2并运行脚本:

导入matplotlib.pyplot作为plt
将cartopy.crs作为CCR导入
图=plt.图(图尺寸=(12,7))
ax=图add_子图(1,1,1,投影=ccrs.PlateCarree())
ax.库存量
plt.紧_布局()
plt.show()

通过有效地工作
tight_layout()产生所需的输出
在我的机器上。

在我的机器上一切正常。应该提供更多信息,即错误消息、s/W版本等。我可以在Python 3.8上使用CartoPy 0.18和matplotlib 3.3.2,您可以为我们提供回溯吗?回溯如下:确实,这解决了问题。非常感谢!
conda upgrade matplotlib
pip install matplotlib==3.3.2