- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个随时间变化的矩阵,我想将演化绘制成动画。
我的代码如下:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
n_frames = 3 #Numero de ficheros que hemos generado
data = np.empty(n_frames, dtype=object) #Almacena los datos
#Leer todos los datos
for k in range(n_frames):
data[k] = np.loadtxt("frame"+str(k))
fig = plt.figure()
plot =plt.matshow(data[0])
def init():
plot.set_data(data[0])
return plot
def update(j):
plot.set_data(data[j])
return [plot]
anim = FuncAnimation(fig, update, init_func = init, frames=n_frames, interval = 30, blit=True)
plt.show()
但是,当我运行它时,我总是收到以下错误:draw_artist can only be used after an initial draw which caching the render
。我不知道这个错误从何而来,也不知道如何解决。我读过this answer还有this article但仍然不知道为什么我的代码不起作用。
感谢任何帮助,谢谢!
最佳答案
您非常接近可行的解决方案。要么改变
plot = plt.matshow(data[0])
到
plot = plt.matshow(data[0], fignum=0)
或使用
plot = plt.imshow(data[0])
相反。
这里使用 plt.matshow(data[0])
的问题在于它 creates a new figure如果 fignum
参数留空(即默认等于 None
)。由于 fig = plt.figure()
被调用并且 fig
被传递给 FuncAnimation
,你最终得到两个数字,一个是结果plt.matshow
,另一个空白被 FuncAnimation
绘制。 FuncAnimation
正在绘制的图形找不到初始绘制,因此它引发了
AttributeError: draw_artist can only be used after an initial draw which caches the render
关于python - matplotlib 中的动画 matshow 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40039112/
我正在尝试使用 matplotlib matshow 一起显示矩阵和相关矢量数据。 vec_data = np.array([[ 0., 1., 1., 1., 0., 1., 1.,
我有一个 101x101 矩阵,我想以图形方式显示它。到目前为止,我使用了 matplotlib.pyplot 中的函数 matshow,如下所示: import numpy as np import
我有一个 NxN 网格,其中包含一些值,每个时间步都会改变。我找到了一种使用 matshow 函数绘制单个网格配置的方法,但我不知道如何在每个时间步更新状态。下面是一个简单的例子: from pyla
我正在尝试制作这样的图形。绘图矩阵,每个都是数值矩阵的可视化。 我认为代码应该如下所示: 使用 PyPlot figure() for i in 1:100 subplot(10, 10, i
我想绘制一个数字矩阵(通过 matshow/imshow 完成)。然后我想在“轴边界上”绘制一些与轴相关的函数。 但是:我希望 matshow 输出有一个黑色边界框,但似乎我无法使用 edge_col
我正在使用 pyplot.matshow 绘制矩阵,并尝试使用 plt.gca().set_axisbelow(True) 使网格线显示在图后面,但它们始终处于打开状态顶部。如何在 matshow 后
想在matshow中看到比例尺,找了好久没找到答案。我怎么做? 代码很简单: def analyze_results(): l_points = [np.array([10, 9, -1]),
今天我尝试从我的分类模型中绘制混淆矩阵。 在一些页面中搜索后,我发现 pyplot 中的 matshow 可以帮助我。 import matplotlib.pyplot as plt from skl
我一个月前开始使用matplotlib,所以我还在学习。 我正在尝试用 matshow 做一个热图。我的代码如下: data = numpy.array(a).reshape(4, 4) cax =
我正在尝试可视化名称共现矩阵。这个版本工作正常: import pandas as pd import numpy as np import string import matplotlib.pypl
我有一个随时间变化的矩阵,我想将演化绘制成动画。 我的代码如下: import numpy as np import matplotlib.pyplot as plt from matplotlib
我已经很努力了,但我还是被 matplotlib 卡住了。请忽略,mpl 文档让我有点困惑。我的问题涉及以下方面: 我用 matshow 函数画了一个对称的 n*n 矩阵 D。行得通。 我想做同样的事
如何在这个例子中的子图之间没有空格? (如果我有更多行,请保持良好的可视化效果) 我已经看到我们所看到的可以随着 figsize 的值发生很大变化。 那么我们是否必须猜测 figsize 的“正确”值
基本上,我想制作类似下面的东西(三角形而不是通常用于 plt.matshow 的正方形)。 可以从四个二维数组开始,每个数组代表一组三角形的颜色值:右、左、下、上: import numpy as n
我正在尝试以宽高比 1 绘制 matshow,但是当我依赖建议的方法 here我在情节周围有一个无法摆脱的额外空间。解决办法是什么? import numpy as np from matplotli
我有一个二部图(1 和 0)的邻接矩阵以及该矩阵的双簇(行和列数组的数组)。如何使用 matplotlib matshow 为邻接矩阵中属于不同簇的元素(仅 1)设置不同的颜色? import num
我希望在热图中引入特定行/列之间的间隙,类似于 R 的 pheatmap gaps_row 或 gaps_col 参数。但粗略搜索后发现该功能似乎不可用。我考虑过通过创建具有特定尺寸的不同轴来模拟这种
我有一个代表网格的 6x6 矩阵。在该网格的一部分,我有一个较小的网格 (3x3),如下所示: In [65]: arr = np.zeros((6,6)) arr[0:3, 0:3] = 1 arr
我正在尝试在 Matplotlib 中使用 imshow 或 matshow 创建一个 10x10 网格。下面的函数将一个 numpy 数组作为输入,并绘制网格。但是,我希望数组中的值也显示在网格定义
我在 matplotlib 中使用 matshow(),生成的图形默认在顶部有 xticklabels。有没有办法将 xticklabels 放在底部? 感谢对此的任何帮助。/M 最佳答案 尝试执行以
我是一名优秀的程序员,十分优秀!