小编Wes*_*ugh的帖子

Matplotlib在第一帧后停止动画

我正在尝试为两个子图设置动画,每个子图有多行.我正在使用Matplotlib,我使用的FuncAnimation是许多动画示例所使用的.

使用动画:

如果我尝试动画它,我只得到第一帧的结果: 用动画

不使用动画:

如果我手动调用我的update_lines函数,它工作正常. 没有动画

码:

下面是完整的代码(在main()工作中取消注释3个指示的行,但我希望看到它实时更新,因此尝试使用动画).

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation


def make_subplots():
    def setup_axes(axes):
        for ax in axes:
            ax.set_xbound(0, 100)  # bound will change as needed.
            ax.set_ylim(0, 1)  # limit won't change automatically.

    def make_lines(axes):
        labels = ('a', 'b', 'c')
        lines = []
        for ax in axes:
            ax_lines = []
            for label in labels:
                x, y = [0], [0]
                line, = ax.plot(x, y, label=label)  # …
Run Code Online (Sandbox Code Playgroud)

python animation matplotlib

11
推荐指数
1
解决办法
2193
查看次数

Python代码在函数中运行得更快,这真的是真的吗?

我看到一条评论引导我提出问题为什么Python代码在函数中运行得更快?.

我开始思考,并想我会自己尝试使用该timeit库,但是我得到了非常不同的结果:

(注意:10**8改为10**7让时间更快一些)

>>> from timeit import repeat
>>> setup = """
def main():
    for i in xrange(10**7):
        pass
"""
>>> stmt = """
for i in xrange(10**7):
    pass
"""
>>> min(repeat('main()', setup, repeat=7, number=10))
1.4399558753975725
>>> min(repeat(stmt, repeat=7, number=10))
1.4410973942722194
>>> 1.4410973942722194 / 1.4399558753975725
1.000792745732109
Run Code Online (Sandbox Code Playgroud)
  • 我使用timeit得当吗?
  • 为什么这些结果相差不到0.1%,而另一个问题的结果差异接近250%?
  • 使用CPython编译的Python版本(如Cython)时,它只会有所不同吗?
  • 最终:Python代码在函数中真的更快,还是仅仅取决于你如何计时?

python performance benchmarking profiling cpython

7
推荐指数
1
解决办法
733
查看次数

你怎么能建立一个模拟二维网格的邻接矩阵

基本上只是想知道这样做的好方法是在python中,我之前在python中使用了一种强力方式,但它只是不是直观的方式.所以,如果有人能帮忙,那就好了.

python language-agnostic graph-theory adjacency-matrix graph-algorithm

5
推荐指数
3
解决办法
4217
查看次数

断言 `mock_calls` 等于预期的调用列表

我正在尝试重新创建mock_calls示例,以便我可以检查预期的调用列表是否等于实际进行的调用。但是,我收到NameError异常,因为name 'call' is not defined

>>> from mock import MagicMock
>>> mock = MagicMock()
>>> result = mock(1, 2, 3)
>>> mock.first(a=3)
<MagicMock name='mock.first()' id='47645192'>
>>> mock.second()
<MagicMock name='mock.second()' id='47653440'>
>>> int(mock)
1
>>> result(1)
<MagicMock name='mock()()' id='47666064'>
>>> expected = [call(1, 2, 3), call.first(a=3), call.second(), call.__int__(), call()(1)]

Traceback (most recent call last):
  File "<pyshell#39>", line 1, in <module>
    expected = [call(1, 2, 3), call.first(a=3), call.second(), call.__int__(), call()(1)]
NameError: name 'call' is not defined …
Run Code Online (Sandbox Code Playgroud)

python mocking

3
推荐指数
1
解决办法
4199
查看次数