第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么在使用 FuncAnimation 繪圖時(shí)點(diǎn)不移動(dòng)?

為什么在使用 FuncAnimation 繪圖時(shí)點(diǎn)不移動(dòng)?

白衣非少年 2023-03-30 10:08:17
我正在嘗試從頭開(kāi)始模擬雙星系統(tǒng)中行星的運(yùn)動(dòng)。為此,我需要能夠在動(dòng)畫(huà)圖中繪制點(diǎn)。在編寫(xiě)整個(gè)代碼之前,我正在學(xué)習(xí)使用 pyplot 為情節(jié)制作動(dòng)畫(huà)。到目前為止,我還沒(méi)有運(yùn)氣為移動(dòng)點(diǎn)設(shè)置動(dòng)畫(huà)。在查看了幾個(gè)教程和文檔之后,我得到了以下內(nèi)容:import matplotlibfrom matplotlib.animation import FuncAnimationimport matplotlib.pyplot as pltimport numpy as npfig, ax = plt.subplots()ax.set_xlim(0,2)ax.set_ylim(0,2)line, = plt.plot(0,0,'bo')def animation(i):    x=np.linspace(0,2,100)    y=np.linspace(0,1,100)    line.set_data(x[i],y[i],'bo')    return line,FuncAnimation(fig, animation, frames=np.arange(100),interval=10)plt.show()然而,這段代碼的輸出只是 0,0 處的一個(gè)點(diǎn),我不明白我可能做錯(cuò)了什么。
查看完整描述

1 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

為了使您的示例起作用,您必須更改兩件事:

  1. 從某處存儲(chǔ)返回值FuncAnimation。否則你的動(dòng)畫(huà)會(huì)在plt.show().

  2. 如果不想畫(huà)線而只想畫(huà)點(diǎn),請(qǐng)plt.plot使用animation

from matplotlib.animation import FuncAnimation

import matplotlib.pyplot as plt

import numpy as np

fig, ax = plt.subplots()

ax.set_xlim(0,2)

ax.set_ylim(0,2)

line, = plt.plot(0,0,'bo')

def animation(i):

    x=np.linspace(0,2,100)

    y=np.linspace(0,1,100)

    plt.plot(x[i],y[i],'bo')

    return line,


my_animation=FuncAnimation(fig, animation, frames=np.arange(100),interval=10)

plt.show()

如果你只想在圖表上有一個(gè)移動(dòng)點(diǎn),你必須設(shè)置并從inblit=True返回結(jié)果:plot.plotanimation


from matplotlib.animation import FuncAnimation

import matplotlib.pyplot as plt

import numpy as np

fig, ax = plt.subplots()

ax.set_xlim(0,2)

ax.set_ylim(0,2)

line, = plt.plot(0,0,'bo')

def animation(i):

  x=np.linspace(0,2,100)

  y=np.linspace(0,1,100)

  return plt.plot(x[i],y[i],'bo')


my_animation=FuncAnimation(

    fig,

    animation,

    frames=np.arange(100),

    interval=10,

    blit=True

)

plt.show()

此外,您可能想擺脫 (0,0) 處的點(diǎn),并且不想為每個(gè)動(dòng)畫(huà)幀計(jì)算xand :y


from matplotlib.animation import FuncAnimation

import matplotlib.pyplot as plt

import numpy as np


fig, ax = plt.subplots()


ax.set_xlim(0,2) 

ax.set_ylim(0,2) 


x=np.linspace(0,2,100) 

y=np.linspace(0,1,100) 


def animation(i):

  return plt.plot(x[i], y[i], 'bo')


my_animation=FuncAnimation(

    fig,

    animation,

    frames=np.arange(100),

    interval=10,

    blit=True

)

plt.show()


查看完整回答
反對(duì) 回復(fù) 2023-03-30
  • 1 回答
  • 0 關(guān)注
  • 235 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)