- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用 plt.tight_layout()
尝试整理具有多个子图的 matplotlib 图时遇到了问题。
我已经创建了 6 个子图作为示例,并想用 tight_layout()
整理它们重叠的文本,但是我得到以下 RuntimeError。
Traceback (most recent call last):
File ".\test.py", line 37, in <module>
fig.tight_layout()
File "C:\Python34\lib\site-packages\matplotlib\figure.py", line 1606, in tight_layout
rect=rect)
File "C:\Python34\lib\site-packages\matplotlib\tight_layout.py", line 334, in get_tight_layout_figure
raise RuntimeError("")
RuntimeError
这里给出了我的代码(我使用的是 Python 3.4)。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 1000)
fig = plt.figure()
ax1 = fig.add_subplot(3, 1, 1)
ax2 = fig.add_subplot(3, 2, 3)
ax3 = fig.add_subplot(3, 2, 4)
ax4 = fig.add_subplot(3, 3, 7)
ax5 = fig.add_subplot(3, 3, 8)
ax6 = fig.add_subplot(3, 3, 9)
for ax in [ax1, ax2, ax3, ax4, ax5, ax6]:
ax.plot(x, np.sin(x))
fig.tight_layout()
plt.show()
我最初怀疑问题可能来自不同大小的子图,但是 tight layout guide似乎暗示这应该不是问题。任何帮助/建议将不胜感激。
最佳答案
这绝对不是一条有用的错误消息,尽管 if 子句中有导致异常的提示。如果您使用 IPython,您将在回溯中获得一些额外的上下文。这是我在尝试运行您的代码时看到的内容:
332 div_col, mod_col = divmod(max_ncols, cols)
333 if (mod_row != 0) or (mod_col != 0):
--> 334 raise RuntimeError("")
尽管您可以将 tight_layout
用于不同大小的子图,但它们必须按规则网格排列。如果您仔细查看文档,它实际上是在使用 plt.subplot2grid
函数来设置与您尝试执行的操作最相关的绘图。
因此,要准确获得您想要的内容,您必须将其布置在 3x6 网格上:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
fig = plt.figure()
# Top row
ax1 = plt.subplot2grid((3, 6), (0, 0), colspan=6)
# Middle row
ax2 = plt.subplot2grid((3, 6), (1, 0), colspan=3)
ax3 = plt.subplot2grid((3, 6), (1, 3), colspan=3)
# Bottom row
ax4 = plt.subplot2grid((3, 6), (2, 0), colspan=2)
ax5 = plt.subplot2grid((3, 6), (2, 2), colspan=2)
ax6 = plt.subplot2grid((3, 6), (2, 4), colspan=2)
# Plot a sin wave
for ax in [ax1, ax2, ax3, ax4, ax5, ax6]:
ax.plot(x, np.sin(x))
# Make the grid nice
fig.tight_layout()
第一个参数给出网格尺寸,第二个参数给出子图左上角的网格位置,rowspan
和 colspan
参数表示网格中有多少个点每个子图都应该延伸过来。
关于python - Matplotlib tight_layout 导致 RuntimeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734068/
运行 server.py 文件时出现错误 File "C:\Users\nawin\AppData\Local\Programs\Python\Python38\lib\site-packages\s
我在我的 PC 上运行 cifar10 网络,在完成训练和运行评估脚本后出现以下错误: 2016-06-01 14:37:14.238317: precision @ 1 = 0.000 Traceb
我已经编写了一段代码来训练Guassian过程回归模型来预测年龄。我已经编写了以下代码,并且运行良好:。但我注意到,每个纪元都输入了相同的数据,我认为这可能会导致过度拟合,所以我想使用Mini Bat
我有一个数据集,其中类值从 -2 到 2 步 (i.e., -2,-1,0,1,2)其中 9 标识未标记的数据。 使用一种热编码 self._one_hot_encode(labels) 我收到以下错
我是 Phoenix Framework 的新用户,我正在尝试设置一个简单的 HTTP POST 服务,该服务对传入数据执行计算并返回结果,但出现以下错误: ** (RuntimeError) exp
为什么这段代码运行良好并且不抛出异常? def myzip(*args): iters = [iter(arg) for arg in args] try: while
今天,当我开始编写我的网页时,它工作正常,但突然我的 css 文件无法工作。我的更改没有更新。读了一点之后,我读到我应该清理我的缓存。我这样做了,之后当我运行我的网页并单击任何按钮时,我会在我的控制台
我使用描述符编写了一个 Circle 类,允许用户设置圆的 x、y 和 r 的值,并检查 x 和 y 的值是否为整数。如果用户输入非整数,则会引发 TypeError,现在我想制作另一个描述符类,允许
代码: # callee.py import signal import sys import time def int_handler(*args): for i in range(10):
将 RuntimeError 异常用于一般应用程序是否可以接受? raise RuntimeError('config file is missing host address') 我有一些代码会遇到
Pytorch测试神经网络时出现“RuntimeError: Error(s) in loading state_dict for Net” 解决方法: ?
得到标题中提到的错误。下面提到的函数由通过POST api调用的另一个函数调用。 打印语句下方的行上有错误。不知道该错误意味着什么,为什么会出现。一周前使用的相同代码。 def remove_indi
我正在尝试计算 PyTorch 中变量的梯度。然而,有一个运行时错误告诉我输出和梯度的形状必须相同。然而,就我而言,输出和梯度的形状不能相同。这是我要重现的代码: import numpy as np
我正在尝试在 ExpandableListView 中查看数据库中的数据(我首先尝试让它使用硬编码字符串)。 我使用了以下示例:CodeWiki ExpandableListView 但是当我点击一个
import asyncio import json import websockets from mongodb import * class WebSocketRe
我正在尝试同时使用多处理和 matplotlib。 我正在创建一个标准的 Pool,添加与 apply_async 的工作,并使用 apply_async 的回调函数更新 GUI,它运行于Pool 的
我正在阅读 Python 3 的文档 here : If a generator code directly or indirectly raises StopIteration, it is con
我无法使用 BeautifulSoup 避免最大递归深度 Python RuntimeError。 我正在尝试递归嵌套的代码部分并提取内容。美化后的 HTML 看起来像这样(不要问为什么它看起来像这样
我知道已经有人问过这个问题,但我仍然无法找到解决方案。 我想在自定义数据集上使用 gensim 的 word2vec,但现在我仍在弄清楚数据集必须采用什么格式。我看了this post其中输入基本上是
我在 Colab Pro+(使用高 RAM 选项)上运行神经网络时发现了这个问题。 运行时错误:CUDA 内存不足。尝试分配 8.00 GiB(GPU 0;15.90 GiB 总容量;12.04 Gi
我是一名优秀的程序员,十分优秀!