我嘗試使用 Matplotlib 創建影片,它似乎可以正確設定影片,但并未顯示資料集中的所有資料點。它是從 2020 年 1 月到 2021 年 12 月的時間序列——它現在似乎只影片到 2020-06 年。
下面是完整的代碼
import yfinance as yf
import matplotlib.animation as ani
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# Get data
data = yf.download('TSLA',start='2020-01-01')
df = data['Adj Close'].to_frame()
fig = plt.figure()
plt.ylabel('Stock Price')
plt.xlabel('Date')
def buildchart(i=int):
plt.legend(df.columns)
p = plt.plot(df[:i].index, df[:i].values, color = 'black')
import matplotlib.animation as ani
animator = ani.FuncAnimation(fig, buildchart, interval = 100)
import os
f = os.getcwd() '/animation.mp4'
writervideo = ani.FFMpegWriter(fps=30)
animator.save(f, writer=writervideo, dpi= 300)
uj5u.com熱心網友回復:
影片的基本形式是設定空圖型別和x軸和y軸范圍,然后用影片函式更新資料。它以面向物件的方式重寫,因為它很容易設定細節。影片設定為在多個幀中重復多個記錄。
import yfinance as yf
import matplotlib.animation as ani
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# Get data
data = yf.download('TSLA',start='2020-01-01')
df = data['Adj Close'].to_frame()
fig,ax = plt.subplots()
line, = ax.plot([], [], color='k', lw=3)
ax.set(xlim=(df.index[0], df.index[-1]), ylim=(df['Adj Close'].min(), df['Adj Close'].max()))
ax.set_ylabel('Stock Price')
ax.set_xlabel('Date')
def buildchart(i):
line.set_data(df[:i].index, df[:i]['Adj Close'])
ax.legend(df.columns)
anim = ani.FuncAnimation(fig, buildchart, frames=len(df), interval=100)
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/396830.html
標籤:Python 熊猫 matplotlib
上一篇:Matplotlib:跨行共享該行獨有的ylabels
下一篇:如何在圖表中添加水平標準偏差線?
