【问题标题】:matplotlib smooth animation superimposed on scatter plotmatplotlib 平滑动画叠加在散点图上
【发布时间】:2017-10-08 23:42:39
【问题描述】:

Jupyter 中的以下 Python 代码显示了一个示例,该示例显示了一些生成的散点图数据,它叠加了一条线,您可以交互地更改 y 截距和斜率,它还显示均方根误差。我的问题是:我怎样才能使它更具响应性?处理过程中存在滞后和累积变化,并且闪烁很多。能否更快、更灵敏、更流畅?

///

%matplotlib inline

from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np

# Desired mean values of generated sample.
N = 50

# Desired mean values of generated sample.
mean = np.array([0, 0])

# Desired covariance matrix of generated sample.
cov = np.array([
        [ 10,  8],
        [  8, 10]
    ])

# Generate random data.
data = np.random.multivariate_normal(mean, cov, size=N)
xdata = data[:, 0]
ydata = data[:, 1]

# Plot linear regression line
def f(m, b):
    plt.figure()
    x = np.linspace(-10, 10, num=100)
    plt.plot(xdata, ydata, 'ro')
    plt.plot(x, m * x + b)
    plt.ylim(-10, 10)
    rmes = np.sqrt(np.mean(((xdata*m+b)-ydata)**2))
    print("Root Mean Square Error: ", rmes)

interactive_plot = interactive(f, m=(-10.0, 10.0), b=(-10, 10, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot

///

【问题讨论】:

    标签: python animation matplotlib plot interactive


    【解决方案1】:

    您需要在函数末尾添加plt.show()。有一个github issue about it

    尝试使用FloatSlidercontinuous_update=FalseSee here

    interactive_plot = interactive(f, m=FloatSlider(min=-10.0, max=10.0,  continuous_update=False), 
                                   b=FloatSlider(min=-10, max=10, step=.5, continuous_update=False))
    

    【讨论】:

    • 添加 plt.show() 仍会显示积压的渲染序列。我不确定是否有一个好的解决方案。但是下面的 URL 呢? -> ipywidgets.readthedocs.io/en/latest/examples/…
    • 您是否在函数f 的末尾添加了plt.show()?这对我有用。确保您已将所有软件包升级到最新版本。
    • 是的。我把 plt.show() 作为函数 f 中的最后一条语句。我想它正在按照它应该工作的方式工作。谢谢。
    • @user2942693 尝试我的更新解决方案以避免持续更新。
    • 将 Continuous_update 设置为 False 确实消除了实时更新。但是我希望获得实时更新,但是当他们排队时,如果除了最近的更新之外的所有更新都被删除并且只剩下倒数第二个更新在队列中待处理,那将是一件好事。
    猜你喜欢
    • 2021-11-05
    • 2012-06-26
    • 1970-01-01
    • 2012-07-07
    • 2021-07-11
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2021-10-21
    相关资源
    最近更新 更多